- Dec 04, 2008
-
-
Scott Michel authored
- First patch from Nehal Desai, a new contributor at Aerospace. Nehal's patch fixes sign/zero/any-extending loads for integers and floating point. Example code, compiled w/o debugging or optimization where he first noticed the bug: int main(void) { float a = 99.0; printf("%d\n", a); return 0; } Verified that this code actually works on a Cell SPU. Changes by Scott Michel: - Fix bug in the value type list constructed by SPUISD::LDRESULT to include both the load result's result and chain, not just the chain alone. - Simplify LowerLOAD and remove extraneous and unnecessary chains. - Remove unused SPUISD pseudo instructions. llvm-svn: 60526
-
Dan Gohman authored
llvm-svn: 60525
-
Dan Gohman authored
llvm-svn: 60524
-
Evan Cheng authored
llvm-svn: 60519
-
Dan Gohman authored
the main thing this covers is spills to distinct spill slots. llvm-svn: 60517
-
Chris Lattner authored
llvm-svn: 60514
-
Dan Gohman authored
issues with subreg operands and tied operands. llvm-svn: 60510
-
- Dec 03, 2008
-
-
Dale Johannesen authored
llvm-svn: 60509
-
Dale Johannesen authored
llvm-svn: 60508
-
Dan Gohman authored
on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. llvm-svn: 60507
-
Dale Johannesen authored
llvm-svn: 60506
-
Chris Lattner authored
llvm-svn: 60501
-
Dan Gohman authored
llvm-svn: 60500
-
Evan Cheng authored
llvm-svn: 60499
-
Dan Gohman authored
an area where eventually it would be good to use target-dependent information. llvm-svn: 60498
-
Dale Johannesen authored
llvm-svn: 60497
-
Dan Gohman authored
examining non-anti-dependence edges. llvm-svn: 60496
-
Dan Gohman authored
llvm-svn: 60495
-
Dale Johannesen authored
llvm-svn: 60494
-
Dan Gohman authored
parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
-
Dan Gohman authored
llvm-svn: 60487
-
Dan Gohman authored
the frame reference. This will help post-RA scheduling determine that spills to distinct stack slots are independent. llvm-svn: 60486
-
Dan Gohman authored
llvm-svn: 60484
-
Duncan Sands authored
a new node if the node was actually remapped. llvm-svn: 60482
-
Rafael Espindola authored
Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
-
Richard Osborne authored
llvm-svn: 60479
-
Evan Cheng authored
llvm-svn: 60478
-
Bill Wendling authored
llvm-svn: 60477
-
Chris Lattner authored
1) have it fold "br undef", which does occur with surprising frequency as jump threading iterates. 2) teach j-t to delete dead blocks. This removes the successor edges, reducing the in-edges of other blocks, allowing recursive simplification. 3) Fold things like: br COND, BBX, BBY BBX: br COND, BBZ, BBW which also happens because jump threading iterates. llvm-svn: 60470
-
Chris Lattner authored
llvm-svn: 60469
-
Chris Lattner authored
llvm-svn: 60468
-
Chris Lattner authored
unconditionally delete the block. All likely clients will do the checking anyway. llvm-svn: 60464
-
Chris Lattner authored
DeleteBlockIfDead method. llvm-svn: 60463
-
Dan Gohman authored
foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked). llvm-svn: 60461
-
Dan Gohman authored
is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
-
Dan Gohman authored
llvm-svn: 60458
-
Dan Gohman authored
than just i32. llvm-svn: 60455
-
Dan Gohman authored
delegates to the regular x86-32 convention which handles byval, but only after it handles a few cases, and it's necessary to handle byval before handling those cases. This fixes PR3122 (and rdar://6400815), llvm-gcc miscompiling LLVM. llvm-svn: 60453
-
- Dec 02, 2008
-
-
Evan Cheng authored
1. ppcf128 select is expanded to f64 select's. 2. f64 select operand 0 is an i1 truncate, it's promoted to i32 zero_extend. 3. f64 select is updated. It's changed back to a "NewNode" and being re-analyzed. 4. f64 select operands are being processed. Operand 0 is a "NewNode". It's being expunged out of ReplacedValues map. 5. ExpungeNode tries to remap f64 select and notice it's a "NewNode" and assert. Duncan, please take a look. Thanks. llvm-svn: 60443
-
Dale Johannesen authored
llvm-svn: 60442
-