- May 19, 2010
-
-
Jakob Stoklund Olesen authored
partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. llvm-svn: 104149
-
Evan Cheng authored
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. llvm-svn: 104147
-
Jakob Stoklund Olesen authored
lowering REG_SEQUENCE instructions. Insert copies for REG_SEQUENCE sources not killed to avoid breaking later passes. llvm-svn: 104146
-
Mikhail Glushenkov authored
llvm-svn: 104145
-
Bob Wilson authored
need to be promoted. The BUILD_VECTOR and EXTRACT_VECTOR_ELT nodes generated here already allow the promoted type to be used without further changes, so just do the promotion. This fixes part of pr7167. llvm-svn: 104141
-
Daniel Dunbar authored
llvm-svn: 104122
-
Daniel Dunbar authored
prefix byte problem as in r104062. - As a total hack to keep the TAILCALL markers in the output, which some tests depend on, this invents a new TAILJMP_1 instruction. llvm-svn: 104120
-
Daniel Dunbar authored
CALL64pcrel32, for the same reason. llvm-svn: 104116
-
Evan Cheng authored
t2LEApcrel and tLEApcrel are re-materializable. This makes it possible to hoist more loads during machine LICM. llvm-svn: 104115
-
Evan Cheng authored
llvm-svn: 104114
-
Daniel Dunbar authored
llvm-svn: 104112
-
Evan Cheng authored
Mark pattern-less mayLoad / mayStore instructions neverHasSideEffects. These do not have other un-modeled side effects. llvm-svn: 104111
-
Evan Cheng authored
llvm-svn: 104110
-
Daniel Dunbar authored
avoid same prefix byte problem as in r104062. llvm-svn: 104108
-
Evan Cheng authored
Mark a few more pattern-less instructions with neverHasSideEffects. This is especially important on instructions like t2LEApcreal which are prime candidate for machine LICM. llvm-svn: 104102
-
Dan Gohman authored
llvm-svn: 104095
-
Evan Cheng authored
Intrinsics which do a vector compare (results are all zero or all ones) are modeled as icmp / fcmp + sext. This is turned into a vsetcc by dag combine (yes, not a good long term solution). The targets can then isel the vsetcc to the appropriate instruction. The trouble arises when the result of a vector cmp + sext is then and'ed with all ones. Instcombine will turn it into a vector cmp + zext, dag combiner will miss turning it into a vsetcc and hell breaks loose after that. Teach dag combine to turn a vector cpm + zest into a vsetcc + and 1. This fixes rdar://7923010. llvm-svn: 104094
-
Dan Gohman authored
opcodes into a helper function. This fixes a few places in the code which were not properly selecting the 8-bit-immediate opcodes. llvm-svn: 104091
-
Dan Gohman authored
llvm-svn: 104089
-
Dan Gohman authored
constants in registers which partially cancel out their immediate fields. llvm-svn: 104088
-
Dan Gohman authored
of its formulae have been removed into a helper function, and also teach it how to update the RegUseTracker. llvm-svn: 104087
-
Bob Wilson authored
in the coalescer's instruction map. llvm-svn: 104086
-
Dan Gohman authored
function. llvm-svn: 104082
-
Dan Gohman authored
llvm-svn: 104080
-
Dan Gohman authored
a helper function. llvm-svn: 104079
-
Dan Gohman authored
llvm-svn: 104078
-
Dan Gohman authored
is inconsistent with the BaseRegs field. It's not print's job to assert on an invalid condition, but it can make one more obvious. llvm-svn: 104077
-
Dan Gohman authored
confusion with LSRInstance's RegUses member. llvm-svn: 104076
-
Jakob Stoklund Olesen authored
llvm-svn: 104074
-
- May 18, 2010
-
-
Dan Gohman authored
llvm-svn: 104068
-
Bill Wendling authored
specified. llvm-svn: 104066
-
Dan Gohman authored
8-bit immediate field rather than one with a wider immediate field. llvm-svn: 104064
-
Chris Lattner authored
The register use operands (e.g. the first argument is passed in a register) is currently being modeled as a normal register use, instead of correctly being an implicit use. This causes the operand to get propagated onto the mcinst, which was causing the encoder to emit a rex prefix byte, which generates an invalid call. This fixes rdar://7998435 llvm-svn: 104062
-
Evan Cheng authored
Sink dag combine's post index load / store code that swap base ptr and index into the target hook. Only the target knows whether the swap is safe. In Thumb2 mode, the offset must be an immediate. rdar://7998649 llvm-svn: 104060
-
Eric Christopher authored
Fixes build failure as well. llvm-svn: 104059
-
Eric Christopher authored
Fix up callers and users. llvm-svn: 104057
-
Jakob Stoklund Olesen authored
instruction. This can happen on ARM: >> %reg1035:5<def>, %reg1035:6<def> = VLD1q16 %reg1028, 0, pred:14, pred:%reg0 Regs: Q0=%reg1032* R0=%reg1028* R1=%reg1029* R2 R3=%reg1031* Killing last use: %reg1028 Allocating %reg1035 from QPR Assigning %reg1035 to Q1 << %D2<def>, %D3<def> = VLD1q16 %R0<kill>, 0, pred:14, pred:%reg0, %Q1<imp-def> llvm-svn: 104056
-
Evan Cheng authored
Continuously refine the register class of REG_SEQUENCE def with all the source registers and sub-register indices. llvm-svn: 104051
-
Evan Cheng authored
Fix PR7162: Use source register classes and sub-indices to determine the correct register class of the definitions of REG_SEQUENCE. llvm-svn: 104050
-
Kevin Enderby authored
CurPtr[0] == '\n' when testing the character after a "0b" when looking to see if it part of a something like "jmp 0b". llvm-svn: 104039
-