- May 11, 2012
-
-
Preston Gurd authored
llvm-svn: 156615
-
Stepan Dyatkovskiy authored
llvm-svn: 156613
-
Hans Wennborg authored
llvm-svn: 156612
-
Hans Wennborg authored
This fixes a TODO from 2007 :) Previously, LLVM would emit the wrong code here (see the update to test/CodeGen/X86/tls-pie.ll). llvm-svn: 156611
-
Silviu Baranga authored
Added the missing bit definition for the 4th bit of the STR (post reg) instruction. It is now set to 0. The patch also sets the unpredictable mask for SEL and SXTB-type instructions. llvm-svn: 156609
-
Silviu Baranga authored
Fixed the LLVM ARM v7 assembler and instruction printer for 8-bit immediate offset addressing. The assembler and instruction printer were not properly handeling the #-0 immediate. llvm-svn: 156608
-
Rafael Espindola authored
llvm-svn: 156606
-
Akira Hatanaka authored
llvm-svn: 156603
-
Jim Grosbach authored
llvm-svn: 156602
-
Jim Grosbach authored
llvm-svn: 156601
-
Eli Friedman authored
llvm-svn: 156600
-
Manman Ren authored
This patch will optimize the following cases: sub r1, r3 | sub r1, imm cmp r3, r1 or cmp r1, r3 | cmp r1, imm bge L1 TO subs r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can replace "sub" with "subs" and eliminate the "cmp" instruction. rdar: 10734411 llvm-svn: 156599
-
Dan Gohman authored
but it generates int3 on x86 instead of ud2. llvm-svn: 156593
-
Eric Christopher authored
to user only read/write. Part of rdar://11325849 llvm-svn: 156591
-
Chad Rosier authored
llvm-svn: 156589
-
Jakob Stoklund Olesen authored
The sub-registers explicitly listed in SubRegs in the .td files form a tree. In a complicated register bank, it is possible to have sub-register relationships across sub-trees. For example, the ARM NEON double vector Q0_Q1 is a tree: Q0_Q1 = [Q0, Q1], Q0 = [D0, D1], Q1 = [D2, D3] But we also define the DPair register D1_D2 = [D1, D2] which is fully contained in Q0_Q1. This patch teaches TableGen to find such sub-register relationships, and assign sub-register indices to them. In the example, TableGen will create a dsub_1_dsub_2 sub-register index, and add D1_D2 as a sub-register of Q0_Q1. This will eventually enable the coalescer to handle copies of skewed sub-registers. llvm-svn: 156587
-
Nuno Lopes authored
add an additional parameter to InstCombiner::EmitGEPOffset() to force it to *not* emit operations with NUW flag llvm-svn: 156585
-
- May 10, 2012
-
-
Preston Gurd authored
llvm-svn: 156579
-
Eric Christopher authored
Patch by Jack Carter. llvm-svn: 156577
-
Andrew Trick authored
llvm-svn: 156576
-
Andrew Trick authored
llvm-svn: 156575
-
Andrew Trick authored
Prioritize the instruction that comes closest to keeping pressure under the target's limit. Then prioritize instructions that avoid increasing the max pressure in the scheduled region. The max pressure heuristic is a tad aggressive. Later I'll fix it to consider the unscheduled pressure as well. WIP: This is mostly functional but untested and not likely to do much good yet. llvm-svn: 156574
-
Andrew Trick authored
llvm-svn: 156573
-
Andrew Trick authored
llvm-svn: 156572
-
Andrew Trick authored
llvm-svn: 156571
-
Sirish Pande authored
llvm-svn: 156569
-
Sirish Pande authored
llvm-svn: 156568
-
Andrew Trick authored
Added getMaxExcessUpward/DownwardPressure. They somewhat abuse the tracker by speculatively handling an instruction out of order. But it is convenient for now. In the future, we will cache each instruction's pressure contribution to make this efficient. llvm-svn: 156561
-
Andrew Trick authored
llvm-svn: 156560
-
Dan Gohman authored
llvm-svn: 156558
-
Manman Ren authored
This commit broke an external linux bot and gave a compile-time warning. llvm-svn: 156556
-
Jakob Stoklund Olesen authored
The .td files specify a tree of sub-registers. Store that tree as ExplicitSubRegs lists in CodeGenRegister instead of extracting it from the Record when needed. llvm-svn: 156555
-
Dan Gohman authored
of recursion, to avoid excessive stack usage on deep expressions. llvm-svn: 156554
-
Nuno Lopes authored
llvm-svn: 156553
-
Joel Jones authored
llvm-svn: 156551
-
Manman Ren authored
This patch will optimize the following cases: sub r1, r3 | sub r1, imm cmp r3, r1 or cmp r1, r3 | cmp r1, imm bge L1 TO subs r1, r3 bge L1 or ble L1 If the branch instruction can use flag from "sub", then we can replace "sub" with "subs" and eliminate the "cmp" instruction. rdar: 10734411 llvm-svn: 156550
-
Joel Jones authored
Instruction::IsIdenticalToWhenDefined. This manifested itself when inlining two calls to the same function. The inlined function had a switch statement that returned one of a set of global variables. Without this modification, the two phi instructions that chose values from the branches of the switch instruction inlined from the callee were considered equivalent and jump-threading replaced a load for the first switch value with a phi selecting from the second switch, thereby producing incorrect code. This patch has been tested with "make check-all", "lnt runteste nt", and llvm self-hosted, and on the original program that had this problem, wireshark. <rdar://problem/11025519> llvm-svn: 156548
-
Nadav Rotem authored
llvm-svn: 156541
-
Nadav Rotem authored
llvm-svn: 156540
-
Nadav Rotem authored
Starting r155461 we are able to select patterns for vbroadcast even when the load op is used by other users. Fix PR11900. llvm-svn: 156539
-