- Sep 13, 2008
-
-
Gabor Greif authored
llvm-svn: 56190
-
Dan Gohman authored
isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. llvm-svn: 56189
-
Duncan Sands authored
Treat stores as reading memory, just to play safe. llvm-svn: 56188
-
Evan Cheng authored
llvm-svn: 56184
-
Dan Gohman authored
Currently it just holds the calling convention and flags for isVarArgs and isTailCall. And it has several utility methods, which eliminate magic 5+2*i and similar index computations in several places. CallSDNodes are not CSE'd. Teach UpdateNodeOperands to handle nodes that are not CSE'd gracefully. llvm-svn: 56183
-
Evan Cheng authored
llvm-svn: 56182
-
Evan Cheng authored
llvm-svn: 56181
-
Evan Cheng authored
llvm-svn: 56180
-
Evan Cheng authored
llvm-svn: 56179
-
Evan Cheng authored
llvm-svn: 56178
-
Evan Cheng authored
llvm-svn: 56176
-
Evan Cheng authored
llvm-svn: 56172
-
Evan Cheng authored
llvm-svn: 56171
-
- Sep 12, 2008
-
-
Duncan Sands authored
llvm-svn: 56170
-
Evan Cheng authored
vr2 = OR vr0, vr1 => vr2 = OR vr1, vr1 // after coalescing vr0 with vr1 Update the value# of the destination register with the copy instruction if that happens. llvm-svn: 56165
-
Dan Gohman authored
ConstantFP* instead of APInt and APFloat directly. This reduces the amount of time to create ConstantSDNode and ConstantFPSDNode nodes when ConstantInt* and ConstantFP* respectively are already available, as is the case in SelectionDAGBuild.cpp. Also, it reduces the amount of time to legalize constants into constant pools, and the amount of time to add ConstantFP operands to MachineInstrs, due to eliminating ConstantInt::get and ConstantFP::get calls. It increases the amount of work needed to create new constants in cases where the client doesn't already have a ConstantInt* or ConstantFP*, such as legalize expanding 64-bit integer constants to 32-bit constants. And it adds a layer of indirection for the accessor methods. But these appear to be outweight by the benefits in most cases. It will also make it easier to make ConstantSDNode and ConstantFPNode more consistent with ConstantInt and ConstantFP. llvm-svn: 56162
-
Dale Johannesen authored
representation; coalescer and RA need to know about it. No functional change. llvm-svn: 56161
-
Dan Gohman authored
with ConstantInt. This led to fixing a bug in TargetLowering.cpp using getValue instead of getAPIntValue. llvm-svn: 56159
-
Duncan Sands authored
I placed it just before GVN because that it is the pass most likely to benefit from it. Some quick and dirty testing confirms that this is a decent place for it. llvm-svn: 56144
-
Duncan Sands authored
when a readonly declaration is called, set a flag. This is faster and uses less memory. In theory it is less accurate, because before only those internal globals that were read by someone were being marked "Ref", but now all are. But in practice, thanks to other passes, all internal globals of the kind considered here will be both read and stored to: those only read will have been turned into constants, and those only stored to will have been deleted. llvm-svn: 56143
-
Dale Johannesen authored
safe in the presence of NaNs. llvm-svn: 56136
-
Dan Gohman authored
getelementptr indices, inserting an explicit cast if necessary. This helps expose the sign-extension operation to other optimizations. llvm-svn: 56133
-
Dan Gohman authored
Patch by Nicolas Capens! llvm-svn: 56129
-
Arnold Schwaighofer authored
llvm-svn: 56127
-
- Sep 11, 2008
-
-
Jim Grosbach authored
llvm-svn: 56126
-
Arnold Schwaighofer authored
When tailcallopt is enabled all fastcc calls must have an aligned argument stack size. Add a test case. llvm-svn: 56119
-
Evan Cheng authored
Fix PR2748. Avoid coalescing physical register with virtual register which would create illegal extract_subreg. e.g. vr1024 = extract_subreg vr1025, 1 ... vr1024 = mov8rr AH If vr1024 is coalesced with AH, the extract_subreg is now illegal since AH does not have a super-reg whose sub-register 1 is AH. llvm-svn: 56118
-
Owen Anderson authored
llvm-svn: 56117
-
Duncan Sands authored
llvm-svn: 56116
-
Duncan Sands authored
(unless passed one via a parameter), even if they are IntrWriteMem. llvm-svn: 56115
-
Dan Gohman authored
cases it was still getting lucky and detecting overflow but it was clearly incorrect. llvm-svn: 56113
-
Evan Cheng authored
llvm-svn: 56112
-
Evan Cheng authored
llvm-svn: 56108
-
Evan Cheng authored
llvm-svn: 56107
-
Jim Grosbach authored
by its first field, but TableGen doesn't actually enforce creating it that way. TableGen sorts the records that will be used to create it by the names of the records, not the Name field of those records. This patch corrects the sort to use the "Name" field of the record as the sort key. llvm-svn: 56106
-
Duncan Sands authored
variables. llvm-svn: 56105
-
Evan Cheng authored
Change getSubReg semantics. It now returns zero if the specified register doesn't have a subreg of the specified index. llvm-svn: 56099
-
Evan Cheng authored
llvm-svn: 56097
-
Dale Johannesen authored
cmp-and-swap reversed the Cmp and Swap arguments; comments make it clear this is unintentional. Unfortunately, the x86 BE had a compensating reversal, which is removed here. PPC is OK. From inspection of the Alpha code I think it is OK, but if somebody has that platform please check it out. I cannot test on that platform. llvm-svn: 56091
-
Owen Anderson authored
If ISD::ANY_EXTEND fails, try ISD::ZERO_EXTEND and ISD::SIGN_EXTEND before giving up. This fixes 445.gobmk on X86-64 in fast isel. llvm-svn: 56088
-