summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* a bunch of ssse3 instructions are misencoded to think they have an Chris Lattner2010-04-172-0/+10
| | | | | | i8 field when they really do not. This fixes rdar://7840289 llvm-svn: 101629
* reenable r101565, removing a problematic assertion.Chris Lattner2010-04-172-5/+2
| | | | | | | | | | | CGSCC can delete nodes in regions of the callgraph that have already been visited. If new CG nodes are allocated to the same pointer, we shouldn't abort, just handle it correctly by assigning a new number. This should restore stability by removing invalidated pointers that *will* be reused from the densemap in the iterator. llvm-svn: 101628
* Postra machine licm must add registers defined by loop invariants to *all* ofEvan Cheng2010-04-171-48/+23
| | | | | | | | the live-in sets of BBs in the loop. Otherwise later pass may end up using the registers and override the invariant. rdar://7852937 No reasonablly sized test case possible. llvm-svn: 101626
* Refresh this documentation. Things have changed a bit in the mean time:Nick Lewycky2010-04-171-11/+24
| | | | | | | | - LLVMgold.so --> libLLVMgold.so - the GCC LTO project is no longer 'upcoming' - document the plugin support for 'ar' and 'nm' llvm-svn: 101624
* Fix codegen passes. -disable-ssc shouldn't disable postra machine licm.Evan Cheng2010-04-171-5/+11
| | | | llvm-svn: 101622
* More work to allow dag combiner to promote 16-bit ops to 32-bit.Evan Cheng2010-04-177-56/+208
| | | | llvm-svn: 101621
* Another 80 col violation.Evan Cheng2010-04-171-1/+2
| | | | llvm-svn: 101620
* Revise my previous change to ExpandBIT_CONVERT. I hadn't realized that thisBob Wilson2010-04-171-12/+22
| | | | | | | | | may be called when either the source or destination type is i64, and my change also hadn't fixed the most obvious problem -- assuming that i64 will only be bitconverted to f64, ignoring the various vector types. Radar 7873160. llvm-svn: 101615
* Add nounwind.Evan Cheng2010-04-171-6/+6
| | | | llvm-svn: 101613
* Re-commit my previous SSAUpdater changes. The previous version naively triedBob Wilson2010-04-173-188/+501
| | | | | | | | | | | to determine where to place PHIs by iteratively comparing reaching definitions at each block. That was just plain wrong. This version now computes the dominator tree within the subset of the CFG where PHIs may need to be placed, and then places the PHIs in the iterated dominance frontier of each definition. The rest of the patch is mostly the same, with a few more performance improvements added in. llvm-svn: 101612
* As a temporary workaround for post-RA not handling DebugValue instructions,Bob Wilson2010-04-171-0/+11
| | | | | | | just remove them all. Radar 7873207 (working around the root problem of Radar 7759363). llvm-svn: 101604
* Revert "Use a simpler data structure to calculate the least recently used ↵Jakob Stoklund Olesen2010-04-171-41/+112
| | | | | | | | register in RegAllocLocal." This reverts commit 101392. It broke a buildbot. llvm-svn: 101595
* Reapply 101503+101520. These are "obviously correct" [Chris]Dale Johannesen2010-04-171-2/+2
| | | | | | and don't cause any problems on Darwin. llvm-svn: 101584
* disable r101565: an assert is getting triggered. More lurking badness no doubt.Chris Lattner2010-04-171-0/+2
| | | | llvm-svn: 101583
* add a noteChris Lattner2010-04-161-0/+5
| | | | llvm-svn: 101581
* Revert 101465, it broke internal OpenGL testing.Eric Christopher2010-04-1644-579/+588
| | | | | | | Probably the best way to know that all getOperand() calls have been handled is to replace that API instead of updating. llvm-svn: 101579
* Add support to emit dwarf ranges.Devang Patel2010-04-165-5/+65
| | | | llvm-svn: 101575
* Use a simpler data structure to calculate the least recently used register ↵Jakob Stoklund Olesen2010-04-161-112/+41
| | | | | | | | in RegAllocLocal. This makes the local register allocator about 20% faster. llvm-svn: 101574
* Cast to (uint64_t) instead of relying on the "ul" suffix.Johnny Chen2010-04-161-1/+1
| | | | llvm-svn: 101573
* Add a getSelectionDAGInfo member to TargetMachine.Dan Gohman2010-04-161-0/+2
| | | | llvm-svn: 101567
* update docs for api change.Chris Lattner2010-04-161-1/+1
| | | | llvm-svn: 101566
* building on the new CallGraphSCC abstraction, teach CallGraphSCCPassManager Chris Lattner2010-04-162-0/+14
| | | | | | | | | | | | to keep the node entries in scc_iterator up to date instead of dangling as the SCC mutates. This is a really terrible problem which was causing -g to affect codegen because it would permute the memory image of the compiler process. Thanks to Dale for expertly hunting it down. llvm-svn: 101565
* Add skeleton target-specific SelectionDAGInfo files.Dan Gohman2010-04-1639-0/+676
| | | | llvm-svn: 101564
* Fixed logic error. Should check Builder for validity before calling SetSessionJohnny Chen2010-04-161-3/+2
| | | | | | on it. llvm-svn: 101563
* move ReplaceNode out of line, rename scc_iterator::fini -> isAtEnd().Chris Lattner2010-04-163-18/+20
| | | | | | No functionality change. llvm-svn: 101562
* Regenerate configure script.Dan Gohman2010-04-161-2/+114
| | | | llvm-svn: 101561
* Add an autoconf check for -retain-symbols-file and conditionalizeDan Gohman2010-04-164-7/+56
| | | | | | | use of that option with it. This eliminates an imprecise "Linux" test, and should help support old versions of gold. llvm-svn: 101560
* Minor change to make the test case comply with Vd<0> == '0' when Q == '1'.Johnny Chen2010-04-161-1/+1
| | | | llvm-svn: 101559
* introduce a new CallGraphSCC class, and pass it aroundChris Lattner2010-04-1610-86/+132
| | | | | | | | to CallGraphSCCPass's instead of passing around a std::vector<CallGraphNode*>. No functionality change, but now we have a much tidier interface. llvm-svn: 101558
* Fixed a bug in DisassembleN1RegModImmFrm() where a break stmt was missing for aJohnny Chen2010-04-164-5/+29
| | | | | | | | | | case. Also, the 0xFF hex literal involved in the shift for ESize64 should be suffixed "ul" to preserve the shift result. Implemented printHex*ImmOperand() by copying from ARMAsmPrinter.cpp and added a test case for DisassembleN1RegModImmFrm()/printHex64ImmOperand(). llvm-svn: 101557
* (i32 sext_in_reg (i32 aext (i16 x)), i16) -> (i32 sext x). No known test ↵Evan Cheng2010-04-161-1/+2
| | | | | | case until -promote-16bit is enabled. llvm-svn: 101551
* tidy upChris Lattner2010-04-161-23/+25
| | | | llvm-svn: 101548
* move PrintCallGraphPass out of the middle of CGPassManager.Chris Lattner2010-04-161-33/+43
| | | | llvm-svn: 101543
* add a missing break back, patch by Nico Schmidt!Chris Lattner2010-04-161-0/+1
| | | | llvm-svn: 101538
* Create a new TargetSelectionDAGInfo class. This will eventually acquireDan Gohman2010-04-163-0/+58
| | | | | | SelectionDAG-specific parts of TargetLowering. llvm-svn: 101537
* Commit this, which should have accompanied 101531.Dan Gohman2010-04-161-1/+2
| | | | llvm-svn: 101532
* Eliminate an unnecessary SelectionDAG dependency in getOptimalMemOpType.Dan Gohman2010-04-165-16/+16
| | | | llvm-svn: 101531
* Fix this code to avoid implicit assumptions about the length of the array.Dan Gohman2010-04-161-9/+1
| | | | llvm-svn: 101530
* In the same spirit of r101524, which removed the assert() from ↵Johnny Chen2010-04-163-2/+3
| | | | | | | | printAddrMode2OffsetOperand(), this patch removes the assert() from printAddrMode3OffsetOperand() and adds a test case. llvm-svn: 101529
* Revert 101520, which depended on 101503, which was reverted.Dan Gohman2010-04-161-0/+1
| | | | llvm-svn: 101528
* Multiclass LdStCop was using pre-UAL syntax LDC<c>L for the L fragment. ChangedJohnny Chen2010-04-162-4/+7
| | | | | | | | | to the UAL syntax of LDCL<c>, instead. Add a test case for this change which also tests the removal of assert() from printAddrMode2OffsetOperand(). llvm-svn: 101527
* Revert commit 101503 (johannes), in the hope of fixing the dragonegg build,Duncan Sands2010-04-161-4/+1
| | | | | | | | | | see http://google1.osuosl.org:8011/builders/dragonegg-x86_64-linux/builds/693 Original commit text: Use a ValueMap not a std::map for the reason indicated in the comment. This was causing nondeterministic changes in inlining decisions. llvm-svn: 101525
* Remove the assert() from printAddrMode2OffsetOperand(). "#0 and #-0" areJohnny Chen2010-04-162-2/+0
| | | | | | | | | considered legal instructions. Refs: A8.6.51 LDC, LDC2 (immediate) -- page A8-107, A8.6.58 LDR (immediate, ARM) -- page A8-121, and A8.6.194 STR (immediate, ARM) -- page A8-395. llvm-svn: 101524
* Trim a #include.Dan Gohman2010-04-161-1/+0
| | | | llvm-svn: 101520
* Revert r101455, which fails on the llvm-arm-linux buildbot.Dan Gohman2010-04-161-41/+0
| | | | llvm-svn: 101515
* Use a ValueMap not a std::map for the reason indicatedDale Johannesen2010-04-161-1/+4
| | | | | | | in the comment. This was causing nondeterministic changes in inlining decisions. llvm-svn: 101503
* 80 col.Evan Cheng2010-04-161-1/+2
| | | | llvm-svn: 101501
* 80 col.Evan Cheng2010-04-161-1/+1
| | | | llvm-svn: 101500
* Avoid creating virtual registers for unused values.Dan Gohman2010-04-162-5/+5
| | | | llvm-svn: 101480
* Fix an assertion string.Dan Gohman2010-04-161-1/+1
| | | | llvm-svn: 101478
OpenPOWER on IntegriCloud