- Jun 23, 2016
-
-
Matthias Braun authored
Do not dump intermediate state of the pending queue anymore now that we always dump the final state before picking. llvm-svn: 273618
-
Kyle Butt authored
Memory references were not being propagated for this folded load. This prevented optimizations like LICM from hoisting the load. Added test to verify that this allows LICM to proceed. llvm-svn: 273617
-
Kyle Butt authored
When considering whether to split an instruction with a memory operand into an explicit load and a register-based instruction, we currently check that the resulting instruction has exactly 1 def. This prevents 2 important LICM optimizations: compares with memory operands, and double indirect calls. All the tests and the test-suite pass without the check. My guess as to original intent is to limit the additional register pressure created by the new instruction, but given that we only split out a single register, it is already limited. The licm-dominance test now checks actual memory loads for hoisting instead of undef, and it tests compares. hoist-invariant-load.ll now checks for 2 hoists, the intended hoist, and a bonus from calling a got-relative function in a loop. llvm-svn: 273616
-
Matthias Braun authored
Consistenly display available and pending queues immediately before the scheduling choice is done. llvm-svn: 273615
-
Rafael Espindola authored
With that SystemZ knows to avoid a GOT for PIE. llvm-svn: 273614
-
George Burgess IV authored
Some of the bots running GCC 4.7 seem to be having trouble with lambdas that explicitly capture `this`. Relevant-looking bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53137 llvm-svn: 273613
-
Rafael Espindola authored
llvm-svn: 273612
-
Mike Aizatsky authored
Summary: It also fixes a bug, when first random might not be ascii. Differential Revision: http://reviews.llvm.org/D21573 llvm-svn: 273611
-
Rafael Espindola authored
llvm-svn: 273609
-
Anna Thomas authored
Summary: This instcombine rule folds away trunc operations that have value available from a prior load or store. This kind of code can be generated as a result of GVN widening the load or from source code as well. Reviewers: reames, majnemer, sanjoy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D21246 llvm-svn: 273608
-
Matt Arsenault authored
This can help debug spilling problems. llvm-svn: 273605
-
George Burgess IV authored
llvm-svn: 273601
-
Aaron Ballman authored
Default to using the Unicode version of Win32 APIs instead of the ANSI version. This helps to catch instances where a developer accidentally forgets to explicitly specify which version of the API to use and accidentally winds up failing to support non-ASCII characters properly. llvm-svn: 273599
-
George Burgess IV authored
Previously, we just unified any arguments that seemed to be related to each other. With this patch, we now respect dereference levels, etc. which should make us substantially more accurate. Proper handling of StratifiedAttrs will be done in a later patch. Patch by Jia Chen. Differential Revision: http://reviews.llvm.org/D21536 llvm-svn: 273596
-
Rafael Espindola authored
llvm-svn: 273595
-
Hans Wennborg authored
We print those hex numbers with uppercase letters. llvm-svn: 273594
-
Michael Kuperstein authored
X86FrameLowering::adjustForHiPEPrologue() contains a hard-coded offset into an Erlang Runtime System-internal data structure (the PCB). As the layout of this data structure is prone to change, this poses problems for maintaining compatibility. To address this problem, the compiler can produce this information as module-level named metadata. For example (where P_NSP_LIMIT is the offending offset): !hipe.literals = !{ !2, !3, !4 } !2 = !{ !"P_NSP_LIMIT", i32 152 } !3 = !{ !"X86_LEAF_WORDS", i32 24 } !4 = !{ !"AMD64_LEAF_WORDS", i32 24 } Patch by Magnus Lang Differential Revision: http://reviews.llvm.org/D20363 llvm-svn: 273593
-
Vassil Vassilev authored
llvm-svn: 273592
-
Reid Kleckner authored
llvm-svn: 273591
-
Nirav Dave authored
llvm-svn: 273588
-
Sanjoy Das authored
llvm-svn: 273587
-
Sanjoy Das authored
llvm-svn: 273586
-
Nirav Dave authored
Recommiting after correcting over-eager Debug Value transfer fixing PR28270. [DAG] Previously debug values would transfer debuginfo for the selected start node for a replacement which allows for debug to be dropped. Push debug value transfer to occur with node/value replacement in SelectionDAG, remove now extraneous transfers of debug values. This refixes PR9817 which was being incompletely checked in the testsuite. Reviewers: jyknight Subscribers: dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D21037 llvm-svn: 273585
-
Sanjay Patel authored
This was noted in http://reviews.llvm.org/D21610 . The previous code predated the use of APInt ( http://reviews.llvm.org/rL47654 ), so it had to account for the fixed width of uint64_t. Now that we're using the variable width APInt, we can remove some complexity. llvm-svn: 273584
-
Ahmed Bougacha authored
The previous code would always do 1 or 2 prefix compares; explicitly only do one. This speeds up debug -gen-asm-matcher by ~10% (e.g. X86: 40s -> 35s). llvm-svn: 273583
-
Pablo Barrio authored
Summary: SSAT saturates an integer, making sure that its value lies within an interval [-k, k]. Since the constant is given to SSAT as the number of bytes set to one, k + 1 must be a power of 2, otherwise the optimization is not possible. Also, the select_cc must use < and > respectively so that they define an interval. Reviewers: mcrosier, jmolloy, rengolin Subscribers: aemerson, rengolin, llvm-commits Differential Revision: http://reviews.llvm.org/D21372 llvm-svn: 273581
-
Artur Pilipenko authored
llvm-svn: 273580
-
Hans Wennborg authored
Differential Revision: http://reviews.llvm.org/D21630 llvm-svn: 273579
-
Chris Lattner authored
llvm-svn: 273578
-
Vedant Kumar authored
llvm-svn: 273577
-
Hans Wennborg authored
It broke test/CodeGen/SystemZ/vec-extract-02.ll llvm-svn: 273575
-
Hans Wennborg authored
It broke 2008-07-15-Bswap.ll and 2009-09-01-PostRAProlog.ll llvm-svn: 273574
-
Artur Pilipenko authored
llvm-svn: 273573
-
Renato Golin authored
llvm-svn: 273570
-
Artur Pilipenko authored
This is a fix for the problem mentioned in "LTO and intrinsics mangling" llvm-dev mail thread: http://lists.llvm.org/pipermail/llvm-dev/2016-April/098387.html Reviewers: mehdi_amini, reames Differential Revision: http://reviews.llvm.org/D19373 llvm-svn: 273568
-
Jonas Paulsson authored
This processor feature had been left out by mistake from the z13 ProcessorModel. Reviewed by Ulrich Weigand. llvm-svn: 273567
-
Simon Dardis authored
This reverts commit r273551. Patch contained a wrong check for isUnsupported. llvm-svn: 273565
-
Aaron Ballman authored
Explicitly specify the ANSI version of these Win32 APIs. While these are seemingly unrelated changes, they are all NFC because we currently default to the ANSI versions of the APIs when building for Windows. This simply makes the ANSI usage explicit. llvm-svn: 273564
-
Michael Zolotukhin authored
When simplifying a load we need to make sure that the type of the simplified value matches the type of the instruction we're processing. In theory, we can handle casts here as we deal with constant data, but since it's not implemented at the moment, we at least need to bail out. This fixes PR28262. llvm-svn: 273562
-
Valery Pykhtin authored
Differential Revision: http://reviews.llvm.org/D21380 llvm-svn: 273561
-