- May 22, 2010
-
-
Bob Wilson authored
copying VFP subregs. This exposed a bunch of dead code in the *spill-q.ll tests, so I tweaked those tests to keep that code from being optimized away. Radar 7872877. llvm-svn: 104415
-
- May 21, 2010
-
-
Evan Cheng authored
Change ARM scheduling default to list-hybrid if the target supports floating point instructions (and is not using soft float). llvm-svn: 104307
-
Evan Cheng authored
Allow targets more controls on what nodes are scheduled by reg pressure, what for latency in hybrid mode. llvm-svn: 104293
-
- May 20, 2010
-
-
Bob Wilson authored
This fixes the remaining issue with pr7167. llvm-svn: 104257
-
- May 19, 2010
-
-
Evan Cheng authored
Code refactoring: pull SchedPreference enum from TargetLowering.h to TargetMachine.h and put it in its own namespace. llvm-svn: 104147
-
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
-
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
-
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
-
- May 18, 2010
-
-
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
-
Jakob Stoklund Olesen authored
too large limit. The function would return immediately when finding an addrmode 3/5 instruction. It needs to keep scanning in case there is an addrmode 6 instruction which drops the limit to 0. A test case is very difficult to produce because it will only fail when the scavenger is used. rdar://problem/7894847 llvm-svn: 103995
-
- May 17, 2010
-
-
Evan Cheng authored
llvm-svn: 103982
-
Bob Wilson authored
Obvious in retrospect but not fun to debug. llvm-svn: 103969
-
Evan Cheng authored
Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers! llvm-svn: 103960
-
Evan Cheng authored
llvm-svn: 103917
-
- May 16, 2010
-
-
Anton Korobeynikov authored
llvm-svn: 103903
-
Anton Korobeynikov authored
llvm-svn: 103901
-
Evan Cheng authored
llvm-svn: 103898
-
- May 15, 2010
-
-
Anton Korobeynikov authored
This can be extended later on to handle more "complex" constants. llvm-svn: 103881
-
Anton Korobeynikov authored
Temporary emit it as raw bytes until it will be added to binutils as well. llvm-svn: 103878
-
Evan Cheng authored
llvm-svn: 103868
-
Evan Cheng authored
llvm-svn: 103855
-
Evan Cheng authored
allow target to override it in order to map register classes to illegal but synthesizable types. e.g. v4i64, v8i64 for ARM / NEON. llvm-svn: 103854
-
Evan Cheng authored
llvm-svn: 103851
-
Evan Cheng authored
instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. llvm-svn: 103835
-
Evan Cheng authored
llvm-svn: 103833
-
- May 14, 2010
-
-
Bill Wendling authored
the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
-
Evan Cheng authored
llvm-svn: 103790
-
Evan Cheng authored
llvm-svn: 103760
-
Evan Cheng authored
llvm-svn: 103749
-
- May 13, 2010
-
-
Evan Cheng authored
llvm-svn: 103731
-
Bob Wilson authored
Do not use those for Thumb1 functions. llvm-svn: 103730
-
Daniel Dunbar authored
llvm-svn: 103694
-
Evan Cheng authored
Bring back VLD1q and VST1q and use them for reloading / spilling Q registers. This allows folding loads and stores into VMOVQ. llvm-svn: 103692
-
Evan Cheng authored
llvm-svn: 103684
-
Evan Cheng authored
llvm-svn: 103683
-
Evan Cheng authored
Fix some potential issues in the pseudo instruction expansion phase: copy implicit operands and memoperands. Also, expand instructions even if their defs are "dead" since they may have implicit kill operands. llvm-svn: 103667
-
- May 12, 2010
-
-
Evan Cheng authored
llvm-svn: 103642
-
Rafael Espindola authored
llvm-svn: 103576
-