- Aug 03, 2020
-
-
Florian Hahn authored
ipconstprop is going to get removed and checking opt with specific passes makes the tests more fragile. The tests retain the important checks that !callback metadata is created correctly.
-
Jan Kratochvil authored
I have made the DW_FORM_ref4 relative. One could also use relocated DW_FORM_ref_addr instead. Tested with: echo 'void f(){}'|clang -o 1.o -c -Wall -g -x c -;./bin/clang -o 1 1.o ../llvm-monorepo/lldb/test/Shell/SymbolFile/DWARF/DW_TAG_GNU_call_site-DW_AT_low_pc.s;./bin/lldb --no-lldbinit ./1 -o r -o 'p p' -o exit -
Craig Topper authored
[X86] Use parity flag from byte test/cmp instruction for __builtin_parity when input fits in 8 bits. If the upper bits of the __builtin_parity idiom are known to be 0 we were previously emitting an xor with 0 to get the parity flag. But we can use cmp/test instead which may expose opportunities for load folding or combining an AND.
-
Craig Topper authored
[X86] Add test cases for missed opportunity to use a byte test instruction instead of an xor with 0 in parity patterns. If the input to the ctpop fits in 8 bits, we can use the parity flag from a TEST instruction, but we're currently XORing with 0.
-
Simon Pilgrim authored
Noticed while updating D77804
-
Mehdi Amini authored
-
- Aug 02, 2020
-
-
Simon Pilgrim authored
As discussed on D81500, this adds a more general ElementCount variant of the build helper and converts the (non-scalable) unsigned NumElts variant to use it internally.
-
-
Sanjay Patel authored
-
Matt Arsenault authored
For AMDGPU, vectors with elements < 32 bits should be indexed in 32-bit elements and the desired bits extracted from there. For elements > 64-bits, these should be reduce to 64/32 elements to enable the normal dynamic indexing paths. In the dynamic index cases, this produces shorter code most of the time. This does immediately regress the constant index cases, but this should be fixed once we have the most basic of shift combines. The element size > 64 case is pretty much ported from the exisiting DAG implementation for extract element promote. The increasing element size case is new.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Try to be more consistent with the SDLoc param in the TargetLowering methods. This also exposes an issue where we were passing a SDNode as a SDLoc, relying on the implicit SDLoc(SDNode) constructor.
-
Simon Pilgrim authored
Try to be more consistent with the SDLoc param in the TargetLowering methods.
-
Simon Pilgrim authored
-
Shinji Okumura authored
The commit cause build failure.
-
Nikita Popov authored
For folds where we check for the binop on both the LHS and RHS, extract a function that expects it on the LHS and call it with swapped order.
-
Xing GUO authored
-
Simon Pilgrim authored
Fixes clang-tidy warning.
-
Simon Pilgrim authored
-
Simon Pilgrim authored
Fixes clang-tidy warning.
-
Simon Pilgrim authored
-
Shinji Okumura authored
This is a split patch of D80991. This patch introduces AAPotentialValues and its interface only. For more detail of AAPotentialValues abstract attribute, see the original patch. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D83283
-
Florian Hahn authored
From PR46939.
-
Michał Górny authored
BUG_REPORT_URL is currently used both in LLVM and in Clang but declared only in the latter. This means that it's missing in standalone clang builds and the driver ends up outputting: PLEASE submit a bug report to and include [...] (note the missing URL) To fix this, include LLVM_PACKAGE_BUGREPORT in LLVMConfig.cmake (similarly to how we pass PACKAGE_VERSION) and use it to fill BUG_REPORT_URL when building clang standalone. Differential Revision: https://reviews.llvm.org/D84987
-
Craig Topper authored
Fixes part of PR46954
-
Craig Topper authored
This adds tests cases where the parity idiom of (and (ctpop X, 1)) has a truncate in the middle.
-
AK authored
Authored by: rjf (Ruijie Fang) Reviewed by: hiraditya,tejohnson,fhahn Differential Revision: https://reviews.llvm.org/D69384
-
AK authored
__assert_fail, abort, exit etc. are cold. TODO: outline throw Authored by: rjf (Ruijie Fang) Reviewed by: hiraditya,tejohnson,fhahn Differential Revision: https://reviews.llvm.org/D69257
-
Kazu Hirata authored
Use llvm::is_contained where appropriate (NFC) Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D85083
-
Lang Hames authored
The -phony-externals option adds a generator which explicitly defines any otherwise unresolved externals as null. This transforms link-time unresolved-symbol errors into potential runtime null pointer accesses (if an unresolved external is actually accessed during execution). This option can be useful in -harness mode to avoid having to mock a large number of symbols that are not reachable at runtime (e.g. unused methods referenced by a class vtable).
-
Lang Hames authored
This prevents weak symbols from being immediately dead-stripped when not directly referenced from the test harneess, enabling use of weak symbols from the code under test.
-
Fangrui Song authored
Fixes PR46169
-
Evgenii Stepanov authored
Disable huge pages in the MSan shadow region when no_huge_pages_for_shadow == true (default). Differential Revision: https://reviews.llvm.org/D85061
-
Andrei Lebedev authored
-
Nikita Popov authored
As mentioned on D70376, LVI can currently cause performance issues when running under NewPM. The problem is that, unlike the legacy pass manager, NewPM will not immediately discard the LVI analysis if the following pass does not need it. This is a problem, because LVI has a high memory requirement, and mass invalidation of LVI values is very inefficient. LVI should only be alive during passes that actively interact with it. This patch addresses the issue by explicitly abandoning LVI after CVP, which gets us back to the LegacyPM behavior. Differential Revision: https://reviews.llvm.org/D84959
-
Craig Topper authored
[X86] Add assembler support for {disp8} and {disp32} to control the size of displacement used for memory operands. These prefixes should override the default behavior and force a larger immediate size. I don't believe gas issues any warning if you use {disp8} when a 32-bit displacement is already required. And this patch doesn't either. This completes the {disp8} and {disp32} support from PR46650. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D84793 -
Craig Topper authored
It's always safe to pick the earlier abs regardless of the nsw flag. We'll just lose it if it is on the outer abs but not the inner abs. Differential Revision: https://reviews.llvm.org/D85053
-
Craig Topper authored
Negating the input doesn't matter. I left a FIXME to copy the nsw flag if its present on the neg but not on the abs. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D85055
-
Florian Hahn authored
Looks like %s was accidentally dropped.
-