summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from ↵Evan Cheng2008-12-052-11/+11
| | | | | | constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. llvm-svn: 60596
* Effectively undo 60461 in PIC mode which simply transform V_SET0 / ↵Evan Cheng2008-12-051-1/+7
| | | | | | | | | | V_SETALLONES into a load from constpool in order to fold into restores. This is not safe to do when PIC base is being used for a number of reasons: 1. GlobalBaseReg may have been spilled. 2. It may not be live at the use. 3. Spiller doesn't know this is happening so it won't prevent GlobalBaseReg from being spilled later (That by itself is a nasty hack. It's needed because we don't insert the reload until later). llvm-svn: 60595
* Fix test/Transforms/GVN/pre-load.llChris Lattner2008-12-051-1/+1
| | | | llvm-svn: 60594
* Fix comment.Evan Cheng2008-12-051-1/+1
| | | | llvm-svn: 60592
* Make IsValueFullyAvailableInBlock safe.Chris Lattner2008-12-051-14/+60
| | | | llvm-svn: 60588
* Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant.Dan Gohman2008-12-054-6/+7
| | | | llvm-svn: 60586
* Teach StackSlotColoring to update MachineMemOperands whenDan Gohman2008-12-051-3/+20
| | | | | | | changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. llvm-svn: 60584
* Ignore IMPLICIT_DEF instructions when computing physreg liveness.Dan Gohman2008-12-051-0/+7
| | | | | | | | | | While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. llvm-svn: 60583
* Re-did 60519. It turns out Darwin's handling of hidden visibility symbols ↵Evan Cheng2008-12-057-54/+156
| | | | | | are a bit more complicate than I expected. Both declarations and weak definitions still need a stub indirection. However, the stubs are in data section and they contain the addresses of the actual symbols. llvm-svn: 60571
* Have raw_fd_ostream keep track of the position in the file to make tell() go ↵Ted Kremenek2008-12-041-10/+4
| | | | | | faster by not requiring a flush(). llvm-svn: 60560
* Rewrite code that 1) filters loops and 2) calculates new loop bounds.Devang Patel2008-12-041-1269/+715
| | | | | | | | This fixes many bugs. I will add more test cases in a separate check-in. Some day, the code that manipulates CFG and updates dom. info could use refactoring help. llvm-svn: 60554
* Factor out some common code.Owen Anderson2008-12-041-76/+39
| | | | llvm-svn: 60553
* CellSPU: Fix bug 3055Scott Michel2008-12-043-23/+59
| | | | | | | | | - Add v4f32, v2f64 to LowerVECTOR_SHUFFLE - Look for vector rotate in shuffle elements, generate a vector rotate instead of a full-blown shuffle when opportunity presents itself. - Generate larger test harness and fix a few interesting but obscure bugs. llvm-svn: 60552
* When allocating a stack temporary, use the correctDuncan Sands2008-12-041-1/+1
| | | | | | | number of bytes for types such as i1 which are not a multiple of 8 bits in length. llvm-svn: 60543
* Missing closing brace and reverse conditional condition on NDEBUGScott Michel2008-12-041-5/+5
| | | | llvm-svn: 60541
* Start simplifying a switch that has a successor that is a switch.Chris Lattner2008-12-041-0/+74
| | | | llvm-svn: 60534
* This code is apparently quite confused. In the meantime,Chris Lattner2008-12-041-1/+2
| | | | | | get it building when NDEBUG is set. llvm-svn: 60532
* Temporarily revert r60519. It was causing a bootstrap failure:Bill Wendling2008-12-045-12/+4
| | | | | | | | | | | | | | | | /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -DHAVE_CONFIG_H -I. -I../../../llvm-gcc.src/libgomp -I. -I../../../llvm-gcc.src/libgomp/config/posix -I../../../llvm-gcc.src/libgomp -Wall -pthread -Werror -O2 -g -O2 -MT barrier.lo -MD -MP -MF .deps/barrier.Tpo -c ../../../llvm-gcc.src/libgomp/barrier.c -fno-common -DPIC -o .libs/barrier.o checking for sys/file.h... /var/folders/zG/zGE-ZJOGFiGjv0B5cs5oYE+++TM/-Tmp-//cc34Jg5P.s:13:non-relocatable subtraction expression, "_gomp_tls_key" minus "L1$pb" /var/folders/zG/zGE-ZJOGFiGjv0B5cs5oYE+++TM/-Tmp-//cc34Jg5P.s:13:symbol: "_gomp_tls_key" can't be undefined in a subtraction expression make[4]: *** [barrier.lo] Error 1 make[4]: *** Waiting for unfinished jobs.... /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.obj/./gcc/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -DHAVE_CONFIG_H -I. -I../../../llvm-gcc.src/libgomp -I. -I../../../llvm-gcc.src/libgomp/config/posix -I../../../llvm-gcc.src/libgomp -Wall -pthread -Werror -O2 -g -O2 -MT alloc.lo -MD -MP -MF .deps/alloc.Tpo -c ../../../llvm-gcc.src/libgomp/alloc.c -o alloc.o >/dev/null 2>&1 yes checking for sys/param.h... make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2 make[1]: *** [all-target-libgomp] Error 2 make[1]: *** Waiting for unfinished jobs.... llvm-svn: 60527
* CellSPU:Scott Michel2008-12-045-133/+56
| | | | | | | | | | | | | | | | | | | | | | - 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
* Use register names instead of numbers in debug output.Dan Gohman2008-12-041-2/+3
| | | | llvm-svn: 60525
* Make debug output more informative.Dan Gohman2008-12-041-1/+1
| | | | llvm-svn: 60524
* Visibility hidden GVs do not require extra load of symbol address from the ↵Evan Cheng2008-12-045-4/+12
| | | | | | GOT or non-lazy-ptr. llvm-svn: 60519
* Add minimal support for disambiguating memory references. CurrentlyDan Gohman2008-12-041-13/+123
| | | | | | the main thing this covers is spills to distinct spill slots. llvm-svn: 60517
* add a debugging option to help track down j-t problems.Chris Lattner2008-12-041-1/+14
| | | | llvm-svn: 60514
* Rewrite the liveness bookkeeping code to fix a bunch ofDan Gohman2008-12-031-34/+42
| | | | | | issues with subreg operands and tied operands. llvm-svn: 60510
* Make the debugging dump be a full line.Dale Johannesen2008-12-031-0/+1
| | | | llvm-svn: 60509
* Remove an unused field.Dale Johannesen2008-12-031-8/+1
| | | | llvm-svn: 60508
* Have PseudoSourceValue override Value::dump, so that it worksDan Gohman2008-12-032-2/+5
| | | | | | | on PseudoSourceValue values. This also fixes a FIXME in lib/VMCode/AsmWriter.cpp. llvm-svn: 60507
* Fix a misspelled function name.Dale Johannesen2008-12-031-4/+4
| | | | llvm-svn: 60506
* Factor some code into a new FoldSingleEntryPHINodes method.Chris Lattner2008-12-034-23/+28
| | | | llvm-svn: 60501
* Fix an inconsistency in a comment.Dan Gohman2008-12-031-4/+3
| | | | llvm-svn: 60500
* Use mmx (punpckldq VR64, (mmx_v_set0)) to clear high 32-bits of a VR64 register.Evan Cheng2008-12-031-3/+13
| | | | llvm-svn: 60499
* Don't charge the full latency for anti and output dependencies. This isDan Gohman2008-12-031-3/+6
| | | | | | | an area where eventually it would be good to use target-dependent information. llvm-svn: 60498
* A step towards geting linux ppc to work (see PR 3099)Dale Johannesen2008-12-031-0/+2
| | | | llvm-svn: 60497
* When looking for anti-dependences on the critical path, don't botherDan Gohman2008-12-031-0/+4
| | | | | | examining non-anti-dependence edges. llvm-svn: 60496
* Add a comment about callee-saved registers.Dan Gohman2008-12-031-0/+2
| | | | llvm-svn: 60495
* Fix a really wrong comment.Dale Johannesen2008-12-031-1/+1
| | | | llvm-svn: 60494
* Split foldMemoryOperand into public non-virtual and protected virtualDan Gohman2008-12-0315-97/+165
| | | | | | | parts, and add target-independent code to add/preserve MachineMemOperands. llvm-svn: 60488
* Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.Dan Gohman2008-12-0316-45/+45
| | | | llvm-svn: 60487
* Extend X86's addFrameReference to add a MachineMemOperand forDan Gohman2008-12-031-1/+18
| | | | | | | the frame reference. This will help post-RA scheduling determine that spills to distinct stack slots are independent. llvm-svn: 60486
* Update a comment.Dan Gohman2008-12-031-3/+4
| | | | llvm-svn: 60484
* Only check that the result of the mapping was notDuncan Sands2008-12-031-0/+1
| | | | | | a new node if the node was actually remapped. llvm-svn: 60482
* Fix bug 3140.Rafael Espindola2008-12-035-0/+14
| | | | | | Print a single parameter .file directive if we have an ELF target. llvm-svn: 60480
* Add support for ISD::TRAP to the XCore backendRichard Osborne2008-12-032-1/+16
| | | | llvm-svn: 60479
* Refactor code. No functionality change.Evan Cheng2008-12-031-72/+75
| | | | llvm-svn: 60478
* CC should only be a ConstantSDNode at this point. Just use 'cast' instead of ↵Bill Wendling2008-12-031-9/+9
| | | | | | 'dyn_cast'. llvm-svn: 60477
* Teach jump threading some more simple tricks:Chris Lattner2008-12-031-16/+156
| | | | | | | | | | | | | | | | 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
* third time is the charm.Chris Lattner2008-12-031-1/+3
| | | | llvm-svn: 60469
* fix assertion.Chris Lattner2008-12-031-1/+1
| | | | llvm-svn: 60468
* Rename DeleteBlockIfDead to DeleteDeadBlock and make it Chris Lattner2008-12-032-10/+5
| | | | | | | unconditionally delete the block. All likely clients will do the checking anyway. llvm-svn: 60464
OpenPOWER on IntegriCloud