| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Add -use-cfl-aa (and -use-cfl-aa-in-codegen) to add CFL AA in the default pass
managers (for easy testing).
llvm-svn: 216978
|
| |
|
|
|
|
| |
This fixes a warning accidentally introduced in r216943.
llvm-svn: 216977
|
| |
|
|
| |
llvm-svn: 216976
|
| |
|
|
|
|
| |
This fixes PR20839, which was a bug in r216949.
llvm-svn: 216975
|
| |
|
|
|
|
|
|
|
| |
behaviour
In theory, alignPtr() could push a pointer beyond the end of the current slab, making
comparisons with that pointer undefined behaviour. Use an integer type to avoid this.
llvm-svn: 216973
|
| |
|
|
|
|
| |
Wagner. This speeds up asan (at least on SPEC) by 1%-5% or more. Also fix lint in dfsan.
llvm-svn: 216972
|
| |
|
|
|
|
| |
This will help with enabling misched
llvm-svn: 216971
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This provides an implementation of CFL alias analysis (including some
supporting data structures). Currently, we don't have any extremely fancy
features, sans some interprocedural analysis (i.e. no field sensitivity, etc.),
and we do best sitting behind BasicAA + TBAA. In such a configuration, we take
~0.6-0.8% of total compile time, and give ~7-8% NoAlias responses to queries
TBAA and BasicAA couldn't answer when bootstrapping LLVM. In testing this on
other projects, we've seen up to 10.5% of queries dropped by BasicAA+TBAA
answered with NoAlias by this algorithm.
Patch by George Burgess IV (with minor modifications by me -- mostly adapting
some BasicAA tests), thanks!
llvm-svn: 216970
|
| |
|
|
|
|
| |
directly written in strictly-conforming source code).
llvm-svn: 216969
|
| |
|
|
| |
llvm-svn: 216964
|
| |
|
|
|
|
|
|
|
|
|
| |
This change moves FastISel for AArch64 to target-dependent instruction selection
only. This change replicates the existing target-independent behavior, therefore
there are no changes to the unit tests or new tests.
Future changes will take advantage of this change and update functionality
and unit tests.
llvm-svn: 216955
|
| |
|
|
| |
llvm-svn: 216953
|
| |
|
|
| |
llvm-svn: 216952
|
| |
|
|
|
|
| |
http://reviews.llvm.org/D4045
llvm-svn: 216949
|
| |
|
|
|
|
| |
Change by Stephane Sezer.
llvm-svn: 216948
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
selection. NFC.
This allows the target to disable target-independent instruction selection and
jump directly into the target-dependent instruction selection code.
This can be beneficial for targets, such as AArch64, which could emit much
better code, but never got a chance to do so, because the target-independent
instruction selector was able to find an instruction sequence.
llvm-svn: 216947
|
| |
|
|
|
|
| |
instruction. radar://18144665
llvm-svn: 216946
|
| |
|
|
|
|
|
|
| |
On operating systems like the BSDs, it is typically the case that
/usr/bin/python does not exist. We should therefore use /usr/bin/env
instead. This is also done in various other scripts in tools/.
llvm-svn: 216945
|
| |
|
|
| |
llvm-svn: 216944
|
| |
|
|
| |
llvm-svn: 216943
|
| |
|
|
|
|
|
|
|
| |
We duplicate ~30 lines of code to lower FABS and FNEG for x86, so this patch combines them into one function.
No functional change intended, so no additional test cases. Test-suite behavior is unchanged.
Differential Revision: http://reviews.llvm.org/D5064
llvm-svn: 216942
|
| |
|
|
|
|
|
|
| |
Some editors create hidden file backups in the same
directory as the file, and it's annoying when cmake
errors on them.
llvm-svn: 216941
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AtomicRMW
Summary:
MemoryDependenceAnalysis is currently cautious when the QueryInstr is an atomic
load or store, but I forgot to check for atomic cmpxchg/atomicrmw. This patch
is a way of fixing that, and making it less brittle (i.e. no risk that I forget
another possible kind of atomic, even if the IR ends up changing in the future),
by adding a fallback checking mayReadOrWriteFromMemory.
Thanks to Philip Reames for finding this bug and suggesting this solution in
http://reviews.llvm.org/D4845
Sadly, I don't see how to add a test for this, since the passes depending on
MemoryDependenceAnalysis won't trigger for an atomic rmw anyway. Does anyone
see a way for testing it?
Test Plan: none possible at first sight
Reviewers: jfb, reames
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5019
llvm-svn: 216940
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
"Setting" does not equal "copying". This bug has sat dormant for 2 reasons:
1. The unit test was not adequate.
2. Every current user of the "copyFastMathFlags" API is operating on a new instruction.
(ie, all existing fast-math flags are off). If you copy flags to an existing
instruction that has some flags on already, you will not necessarily turn them off
as expected.
I uncovered this bug while trying to implement a fix for PR20802.
llvm-svn: 216939
|
| |
|
|
| |
llvm-svn: 216938
|
| |
|
|
| |
llvm-svn: 216937
|
| |
|
|
|
|
| |
Fixes PR20731.
llvm-svn: 216936
|
| |
|
|
|
|
| |
"vf[0]" ==> "vs[0]"
llvm-svn: 216935
|
| |
|
|
|
|
|
|
|
|
| |
I've been assuming chain operands were always the first operand,
since the documentation says this. I was confused about why they
were missing after instruction selection. Apparently the convention
changes to using the last operand for MachineSDNodes and I've never
noticed before.
llvm-svn: 216934
|
| |
|
|
|
|
|
| |
This is broken when 64-bit add is only partially
moved to the VALU.
llvm-svn: 216933
|
| |
|
|
|
|
|
|
| |
If an fmul was introduced by lowering, it wouldn't be folded
into a multiply by a constant since the earlier combine would
have replaced the fmul with the fadd.
llvm-svn: 216932
|
| |
|
|
| |
llvm-svn: 216931
|
| |
|
|
|
|
| |
Patch by Björn Steinbrink
llvm-svn: 216930
|
| |
|
|
|
|
|
|
|
| |
Also fix a small copy-paste bug in X86ISelLowering where Chain should
have been used in place of DAG.getEntryToken().
Fixes PR20828.
llvm-svn: 216929
|
| |
|
|
|
|
|
| |
This was copy-paste from the integer version, but
FP build_vectors don't truncate.
llvm-svn: 216928
|
| |
|
|
| |
llvm-svn: 216927
|
| |
|
|
| |
llvm-svn: 216926
|
| |
|
|
| |
llvm-svn: 216925
|
| |
|
|
| |
llvm-svn: 216924
|
| |
|
|
|
|
|
|
|
|
|
|
| |
v2: Fix trailing whitespace
Fix signed long overflow
improve comment
v3: fix typo
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Tom Stellard <tom@stellard.net>
llvm-svn: 216923
|
| |
|
|
|
|
|
|
| |
v2: use space instead of '=' to make Mac happy
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
Reviewed-by: Jeroen Ketema <j.ketema@imperial.ac.uk>
llvm-svn: 216922
|
| |
|
|
| |
llvm-svn: 216921
|
| |
|
|
|
|
| |
This bug was reported by UBSan.
llvm-svn: 216920
|
| |
|
|
|
|
|
|
| |
This removes static initializers from the backends which generate this data, and also makes this struct match the other Tablegen generated structs in behaviour
Reviewed by Andy Trick and Chandler C
llvm-svn: 216919
|
| |
|
|
| |
llvm-svn: 216918
|
| |
|
|
|
|
| |
This bug was reported by UBSan.
llvm-svn: 216917
|
| |
|
|
|
|
|
|
| |
Rather than passing by lvalue reference, pass by value to ensure that
the caller provides an rvalue (and use move assignment, rather than
release+reset, to assign to the member variable)
llvm-svn: 216916
|
| |
|
|
|
|
|
|
| |
(which happened only on error recovery path).
This bug was reported by UBSan.
llvm-svn: 216915
|
| |
|
|
|
|
|
| |
This reverts revision 216913; the new test added at revision 216913
caused regression failures on a couple of buildbots.
llvm-svn: 216914
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When folding a fused multiply-add builtin call, make sure that we propagate the
correct result in the case where the addend is zero, and the two other operands
are finite non-zero.
Example:
define double @test() {
%1 = call double @llvm.fma.f64(double 7.0, double 8.0, double 0.0)
ret double %1
}
Before this patch, the instruction simplifier wrongly folded the builtin call
in function @test to constant 'double 7.0'.
With this patch, method 'fusedMultiplyAdd' correctly evaluates the multiply and
propagates the expected result (i.e. 56.0).
Added test fold-builtin-fma.ll with the reproducible from PR20832 plus extra
test cases to verify the behavior of method 'fusedMultiplyAdd' in the presence
of NaN/Inf operands.
This fixes PR20832.
Differential Revision: http://reviews.llvm.org/D5152
llvm-svn: 216913
|