- Apr 25, 2021
-
-
Hsiangkai Wang authored
-
Lang Hames authored
-
Hsiangkai Wang authored
In some cases, we want to provide the alias name for the clang builtins. For example, the arguments must be constant integers for some RISC-V builtins. If we use wrapper functions, we could not constrain the arguments be constant integer. This attribute is used to achieve the purpose. Besides this, use `clang_builtin_alias` is more efficient than using wrapper functions. We use this attribute to deal with test time issue reported in https://bugs.llvm.org/show_bug.cgi?id=49962. In our downstream testing, it could decrease the testing time from 6.3 seconds to 3.7 seconds for vloxei.c test. Differential Revision: https://reviews.llvm.org/D100611
-
Lang Hames authored
This reapplies 1e1d75b1, which was reverted in ce1a4d53 due to build failures. The unconditional dependencies on clang and llvm-jitlink in compiler-rt/test/orc/CMakeLists.txt have been removed -- they don't appear to be necessary, and I suspect they're the cause of the build failures seen earlier.
-
Jason Molenda authored
Instead of looking up a symbol and reducing it to an addr_t to set a breakpoint, set the breakpoint on the function name directly. The old Mac OS X dynamic loader plugin worked in terms of addresses and I incorrectly emulated that here when I wrote this newer one. Differential Revision: https://reviews.llvm.org/D100931
-
Nikita Popov authored
ICMP_NE predicates directly overwrote the rewritten result, instead of chaining it with previous rewrites, as was done for ICMP_ULT and ICMP_ULE. This means that some guards were effectively discarded, depending on their order.
-
Nikita Popov authored
This is the same as @test_guard_ult_ne, just with the order of the conditions swapped.
-
Nikita Popov authored
m_Deferred() has nothing to do with commutative matchers, it needs to be used whenever the value to match is determinde as part of the same match expression.
-
RamNalamothu authored
In terms of readability, the `enum CFIMoveType` didn't better document what it intends to convey i.e. the type of CFI section that gets emitted. Reviewed By: dblaikie, MaskRay Differential Revision: https://reviews.llvm.org/D76519
-
Dávid Bolvanský authored
Fixes tail folding issue mentioned in D100879. Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D101230
-
peter klausler authored
Such macros were exposing some edge cases in the preprocessor regarding empty tokens. Differential Revision: https://reviews.llvm.org/D101207
-
Florian Hahn authored
performSymbolicEvaluation is used to obtain the symbolic expression when visiting instructions and this is used to determine their congruence class. performSymbolicEvaluation only creates expressions for certain instructions (via createExpression). For unsupported instructions, 'unknown' expression are created. The use of createExpression in processOutgoingEdges means we may simplify the condition in processOutgoingEdges to a constant in the initial round of processing, but we use Unknown(I) for the congruence class. If an operand of I changes the expression Unknown(I) stays the same, so there is no update of the congruence class of I. Hence it won't get re-visited. So if an operand of I changes in a way that causes createExpression to return different result, this update is missed. This patch updates the code to use performSymbolicEvaluation, to be symmetric with the congruence class updating code. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D99990
-
Dávid Bolvanský authored
-
David Green authored
This is similar to D69796 from the ARM backend. We remove the UseAA feature, enabling it globally in the AArch64 backend. This should in general be an improvement allowing the backend to reorder more instructions in scheduling and codegen, and enabling it by default helps to improve the testing of the feature, not making it cpu-specific. A debugging option is added instead for testing. Differential Revision: https://reviews.llvm.org/D98781
-
Dávid Bolvanský authored
-
David Tolnay authored
The following program winds up with D->getDefaultArgStorage().getInheritedFrom() == nullptr during dumping the TemplateTemplateParmDecl corresponding to the template parameter of i. template <typename> struct R; template <template <typename> class = R> void i(); This patch fixes the null pointer dereference.
-
Dávid Bolvanský authored
Proof: https://alive2.llvm.org/ce/z/ss2zyt - rotl https://alive2.llvm.org/ce/z/ZM7Aue - rotr Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101235
-
- Apr 24, 2021
-
-
Dávid Bolvanský authored
For example: ``` int src(unsigned int a, unsigned int b) { return __builtin_popcount(a << 16) + __builtin_popcount(b >> 16); } int tgt(unsigned int a, unsigned int b) { return __builtin_popcount((a << 16) | (b >> 16)); } ``` Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D101210 -
Christopher Di Bella authored
Implements parts of: * P0896R4 The One Ranges Proposal` Depends on D100080 Differential Revision: https://reviews.llvm.org/D100160 -
Mark de Wever authored
A status page for libc++'s Format library. The page is inspired by @zoecarver's Ranges status page. Differential Revision: https://reviews.llvm.org/D101085
-
Nikita Popov authored
-
Nico Weber authored
When I added this assert in D93609, it asserted that a symbol that is privateExtern is also isExternal(). In D98381 the privateExtern check moved into shouldExportSymbol() but the assert didn't -- now it checked that _every_ non-exported symbol is isExternal(), which isn't true. Move the assert into the privateExtern check where it used to be. Fixes PR50098. Differential Revision: https://reviews.llvm.org/D101223
-
Shu Tian authored
Reviewed By: #libc, ldionne, Quuxplusone, Mordante Differential Revision: https://reviews.llvm.org/D100828
-
David Green authored
This clang-formats the list of ARMISD nodes. Usually this is something I would avoid, but these cause problems with formatting every time new nodes are added. The list in getTargetNodeName also makes use of MAKE_CASE macros, as other backends do.
-
Dávid Bolvanský authored
-
Dávid Bolvanský authored
Taken mostly from LLVM langref.
-
Nico Weber authored
- the macro seems needlessly clever -- shorter and imho clearer without it - give all filenames an extension so they look like filenames - rename .private_extern symbol from _private to _private_extern to prepare for follow-up that adds a truly private symbol No behavior change. Differential Revision: https://reviews.llvm.org/D101222
-
Nico Weber authored
Would've caught the (since fixed) regression in D97610. No behavior change. Differential Revision: https://reviews.llvm.org/D101218
-
dfukalov authored
Use offsets stored in `AliasResult` implemented in D98718. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D95543
-
Dávid Bolvanský authored
-
Michael Kruse authored
We previously had a different interpretation of unroll transformation attributes than how LoopUnroll interpreted it. In particular, llvm.loop.unroll.enable was needed explicitly to enable it and disabling metadata was ignored. Additionally, it required that either full unrolling or an unroll factor to be specified or fail otherwise. An unroll factor is still required, but the transformation is ignored with the hope that LoopUnroll is going to apply the unrolling, since Polly currently does not implement an heuristic. Fixes llvm.org/PR50109
-
Michał Górny authored
Enable reporting fork/vfork events to the server when supported. At this moment, this is used only to test the server code, as real client does not report fork-events and vfork-events as supported. Differential Revision: https://reviews.llvm.org/D100208
-
Michał Górny authored
Add a NativeDelegate API to pass new processes (forks) to LLGS, and support detaching them via the 'D' packet. A 'D' packet without a specific PID detaches all processes, otherwise it detaches either the specified subprocess or the main process, depending on the passed PID. Differential Revision: https://reviews.llvm.org/D100191
-
Michał Górny authored
Introduce three new stop reasons for fork, vfork and vforkdone events. This includes server support for serializing fork/vfork events into gdb-remote protocol. The stop infos for the two base events take a pair of PID and TID for the newly forked process. Differential Revision: https://reviews.llvm.org/D100196
-
Michał Górny authored
Introduce a NativeProcessProtocol API for indicating support for protocol extensions and enabling them. LLGS calls GetSupportedExtensions() method on the process factory to determine which extensions are supported by the plugin. If the future is both supported by the plugin and reported as supported by the client, LLGS enables it and reports to the client as supported by the server. The extension is enabled on the process instance by calling SetEnabledExtensions() method. This is done after qSupported exchange (if the debugger is attached to any process), as well as after launching or attaching to a new inferior. The patch adds 'fork' extension corresponding to 'fork-events+' qSupported feature and 'vfork' extension for 'vfork-events+'. Both features rely on 'multiprocess+' being supported as well. Differential Revision: https://reviews.llvm.org/D100153
-
Fangrui Song authored
-
Butygin authored
Differential Revision: https://reviews.llvm.org/D100268
-
natashaknk authored
Lowering gather operation to linalg dialect. Reviewed By: rsuderman Differential Revision: https://reviews.llvm.org/D101200
-
Christopher Di Bella authored
Implements parts of: * P0896R4 The One Ranges Proposal` Depends on D100073. Reviewed By: ldionne, zoecarver, #libc Differential Revision: https://reviews.llvm.org/D100080 -
Fangrui Song authored
-