- Dec 03, 2008
-
-
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
-
Scott Michel authored
consistent with the way it's generally done in other places. llvm-svn: 60439
-
Scott Michel authored
- Incorporate Tilmann Scheller's ISD::TRUNCATE custom lowering patch - Update SPU calling convention info, even if it's not used yet (but can be at some point or another) - Ensure that any-extended f32 loads are custom lowered, especially when they're promoted for use in printf. llvm-svn: 60438
-
Dan Gohman authored
llvm-svn: 60434
-
Owen Anderson authored
llvm-svn: 60433
-
Dale Johannesen authored
llvm-svn: 60432
-
Dale Johannesen authored
llvm-svn: 60431
-
Chris Lattner authored
llvm-svn: 60429
-
Tilmann Scheller authored
llvm-svn: 60409
-
Chris Lattner authored
straight-forward implementation. This does not require any extra alias analysis queries beyond what we already do for non-local loads. Some programs really really like load PRE. For example, SPASS triggers this ~1000 times, ~300 times in 255.vortex, and ~1500 times on 403.gcc. The biggest limitation to the implementation is that it does not split critical edges. This is a huge killer on many programs and should be addressed after the initial patch is enabled by default. The implementation of this should incidentally speed up rejection of non-local loads because it avoids creating the repl densemap in cases when it won't be used for fully redundant loads. This is currently disabled by default. Before I turn this on, I need to fix a couple of miscompilations in the testsuite, look at compile time performance numbers, and look at perf impact. This is pretty close to ready though. llvm-svn: 60408
-
Nick Lewycky authored
llvm-svn: 60407
-
Mon P Wang authored
llvm-svn: 60406
-
Chris Lattner authored
llvm-svn: 60405
-
Chris Lattner authored
llvm-svn: 60404
-
Bill Wendling authored
llvm-svn: 60403
-