| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Specially crafted bitcode wrapper headers can cause unsigned interger
overflow and lead to crashes when wrapping around. Fix the offset check
and avoid such scenarios.
Writing a testcase for this would involve editing the binary to generate
values that trigger the overflow, since this would never happen while
generating the bitcode in regular compilation flows, so there's
currently no feasible way add one.
llvm-svn: 268881
|
|
|
|
|
|
| |
always canonicalized to v4i32/v8i32/v16i32 except for in SSE1 only when only v4f32 is supported.
llvm-svn: 268880
|
|
|
|
|
|
|
|
|
|
| |
Before:
f(/*a=*/a, /*b=*/ ::b);
After:
f(/*a=*/a, /*b=*/::b);
llvm-svn: 268879
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
template <enum E> class A { public : E *f(); };
After:
template <enum E> class A {
public:
E *f();
};
llvm-svn: 268878
|
|
|
|
|
|
| |
SSE2/SSE3/SSSE3/SSE41/SSE42 targets
llvm-svn: 268877
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MIPS N64 ABI packs multiple relocations into the single relocation
record. In general, all up to three relocations can have arbitrary types.
In fact, Clang and GCC uses only a few combinations. For now, we support
two of them. That is allow to pass at least all LLVM test suite cases.
<any relocation> / R_MIPS_SUB / R_MIPS_HI16 | R_MIPS_LO16
<any relocation> / R_MIPS_64 / R_MIPS_NONE
The first relocation is a 'real' relocation which is calculated using
the corresponding symbol's value. The second and the third relocations
used to modify result of the first one: extend it to 64-bit, extract
high or low part etc. For details, see part 2.9 'Relocation' at
https://dmz-portal.mips.com/mw/images/8/82/007-4658-001.pdf
llvm-svn: 268876
|
|
|
|
|
|
|
|
|
|
|
|
| |
A number of libcalls don't exist in any particular lib but are, instead,
defined in math.h as inline functions (even in C mode!). Don't rely on
their existence when lowering @llvm.{cos,sin,floor,..}.f32, promote them
instead.
N.B. We had logic to handle FREM but were missing out on a number of
others. This change generalizes the FREM handling.
llvm-svn: 268875
|
|
|
|
|
|
| |
now use the full GCC version in their weird suffix.
llvm-svn: 268874
|
|
|
|
|
|
| |
Either way a 256-bit VXORPS will be used.
llvm-svn: 268873
|
|
|
|
|
|
| |
supported. While there, add a predicate to the SSE2 patterns to avoid an ordering dependency.
llvm-svn: 268872
|
|
|
|
|
|
| |
only AVX1 is supported. AVX_SET0 just expands to 256-bit VXORPS which is legal in AVX1.
llvm-svn: 268871
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scanning for device code.
Summary: `getAssociatedStmt()` contains an assertion that assumes the statement always exists. In device code scanning, we need to look into the associated statement therefore we check its existence. This patch replaces `getAssociatedStmt` by `hasAssociatedStmt` so that we do not trigger the assertion for directives that happen not to have an associated statement (e.g target enter/exit data).
Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev
Subscribers: cfe-commits, caomhin
Differential Revision: http://reviews.llvm.org/D19812
llvm-svn: 268870
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(re-apply r268810 as it exposed an uninitialized variable in ARM MFI.
Patch 268868 should fix that.)
Summary:
Currently, when checking if a stack is "BigStack" or not, it doesn't count into spills and arguments. Therefore, LLVM won't reserve spill slot for this actually "BigStack". This may cause scavenger failure.
Reviewers: rengolin
Subscribers: vitalybuka, aemerson, rengolin, tberghammer, danalbert, srhines, llvm-commits
Differential Revision: http://reviews.llvm.org/D19896
llvm-svn: 268869
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: Explicitly initialize ArgumentStackSize to prevent the msan failure.
Reviewers: rengolin
Subscribers: aemerson, rengolin, llvm-commits
Differential Revision: http://reviews.llvm.org/D20051
llvm-svn: 268868
|
|
|
|
| |
llvm-svn: 268867
|
|
|
|
| |
llvm-svn: 268866
|
|
|
|
|
|
| |
Added bitreverse creation testing
llvm-svn: 268865
|
|
|
|
|
|
|
|
| |
This reverts commit r268840, as it breaks Thumb2 self-hosting. There is something
unstable in the profiling for Thumb2 that needs to be sorted out before we continue
implementing these changes to the profiler. See PR27667.
llvm-svn: 268864
|
|
|
|
|
|
| |
in 64-bit mode.
llvm-svn: 268863
|
|
|
|
|
|
| |
Identity tests are currently failing - this will be fixed soon
llvm-svn: 268862
|
|
|
|
| |
llvm-svn: 268861
|
|
|
|
| |
llvm-svn: 268860
|
|
|
|
|
|
| |
count' cost tests
llvm-svn: 268859
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For the sake of minimalism, this patch is x86 only, but I think that at least
PPC, ARM, AArch64, and Sparc probably want to do this too.
We might want to generalize the hook and pattern recognition for a target like
PPC that has a full assortment of negated logic ops (orc, nand).
Note that http://reviews.llvm.org/D18842 will cause this transform to trigger
more often.
For reference, this relates to:
https://llvm.org/bugs/show_bug.cgi?id=27105
https://llvm.org/bugs/show_bug.cgi?id=27202
https://llvm.org/bugs/show_bug.cgi?id=27203
https://llvm.org/bugs/show_bug.cgi?id=27328
Differential Revision: http://reviews.llvm.org/D19087
llvm-svn: 268858
|
|
|
|
|
|
|
|
|
|
| |
Summary: The second check failed, the initializer wasn't renamed.
Reviewers: cfe-commits, klimek
Differential Revision: http://reviews.llvm.org/D19957
llvm-svn: 268857
|
|
|
|
|
|
| |
closing. Use raw_string_ostream::str() to flush the buffer.
llvm-svn: 268856
|
|
|
|
|
|
|
|
|
| |
Min/max expressions are easier to read and can in some cases also result in
more concise IR that is generated as the min/max --- when lowered to a
cmp+select pattern -- commonly has a simpler condition then the ternary
condition isl would normally generate.
llvm-svn: 268855
|
|
|
|
| |
llvm-svn: 268854
|
|
|
|
|
|
| |
This update fixes an assertion in the isl scheduler.
llvm-svn: 268853
|
|
|
|
| |
llvm-svn: 268852
|
|
|
|
| |
llvm-svn: 268851
|
|
|
|
| |
llvm-svn: 268850
|
|
|
|
|
|
|
|
|
| |
deleting it.
Fix MSAN build.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 268849
|
|
|
|
|
|
| |
[-Wunused-function]
llvm-svn: 268848
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the code that handles stripping debug info intrinsic from
StripDebugInfo(Module) to StripDebugInfo(Function). The latter is
already walking every instructions so it makes sense to do it at the
same time.
This makes also stripDebugInfo(Function) as an API more useful: it
is really dropping every debug info in the Function.
Finally the existing code is trigerring an assertion when the Module
is not fully materialized.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 268847
|
|
|
|
| |
llvm-svn: 268846
|
|
|
|
|
|
|
|
| |
This enables lazy JITing on Windows x86-64.
Patch by David. Thanks David!
llvm-svn: 268845
|
|
|
|
| |
llvm-svn: 268844
|
|
|
|
| |
llvm-svn: 268843
|
|
|
|
| |
llvm-svn: 268842
|
|
|
|
| |
llvm-svn: 268841
|
|
|
|
|
|
|
|
| |
With this patch, value data are longer pre-collected
before writing. The code is simplified and requires
less heap space for dumping.
llvm-svn: 268840
|
|
|
|
| |
llvm-svn: 268839
|
|
|
|
| |
llvm-svn: 268838
|
|
|
|
|
|
| |
It breaks many bots
llvm-svn: 268837
|
|
|
|
|
|
| |
There is no need to match the comparison instruction repeatedly.
llvm-svn: 268836
|
|
|
|
| |
llvm-svn: 268835
|
|
|
|
| |
llvm-svn: 268834
|
|
|
|
|
|
|
| |
16802==WARNING: MemorySanitizer: use-of-uninitialized-value
lib/Target/ARM/ARMFrameLowering.cpp:1632
llvm-svn: 268833
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves the code that handles stripping debug info intrinsic from
StripDebugInfo(Module) to StripDebugInfo(Function). The latter is
already walking every instructions so it makes sense to do it at the
same time.
This makes also stripDebugInfo(Function) as an API more useful: it
is really dropping every debug info in the Function.
Finally the existing code is trigerring an assertion when the Module
is not fully materialized.
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 268832
|