summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* Add more newlines to make up for the ones removed from the end of instructions.Nick Lewycky2009-09-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81851 91177308-0d34-0410-b5e6-96231b3b80d8
* Another try at early partial coalescing. Identity phi source copies (their ↵Evan Cheng2009-09-15
| | | | | | | | | sources are defined by phi join def) are coalesced. And the phi join copy is backward copy propagated into the other copies. Still miscompiling some tests. :-( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81849 91177308-0d34-0410-b5e6-96231b3b80d8
* Forbid arrays of function-type and structures with function-typed fields.Nick Lewycky2009-09-15
| | | | | | | | | | | While I'm there, change code that does: SomeTy == Type::getFooType(Context) into: SomeTy->getTypeID() == FooTyID to decrease the amount of useless type creation which may involve locking, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81846 91177308-0d34-0410-b5e6-96231b3b80d8
* fix PR4963: folding insertvalue would sometimes turn a packed struct intoChris Lattner2009-09-15
| | | | | | | an unpacked one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81845 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new CallGraphNode::replaceCallEdge method and use it fromChris Lattner2009-09-15
| | | | | | | | | argpromote to avoid invalidating an iterator. This fixes PR4977. All clang tests now pass with expensive checking (on my system at least). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81843 91177308-0d34-0410-b5e6-96231b3b80d8
* add newline to debug dumpChris Lattner2009-09-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81840 91177308-0d34-0410-b5e6-96231b3b80d8
* make -debug-pass=Executions show information about what call graph nodesChris Lattner2009-09-15
| | | | | | | are in the SCC for each execution of a CGSCC pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81838 91177308-0d34-0410-b5e6-96231b3b80d8
* add some missing quotes in debug outputChris Lattner2009-09-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81836 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove invalid add_dependencies line to unbreak the CMake build.Ted Kremenek2009-09-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81827 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of GetProcessId in Win32/Program.inc.Mikhail Glushenkov2009-09-15
| | | | | | | GetProcessId was introduced only in XP. As a bonus, this change makes Program objects copyable, since Program is now basically a PID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81826 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't pull a load through a callseq_start if the load's chainDan Gohman2009-09-15
| | | | | | | | | | has multiple uses, as one of the other uses may be on a path to a different node above the callseq_start, because that leads to a cyclic graph. This problem is exposed when -combiner-global-alias-analysis is used. This fixes PR4880. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81821 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove incorrect CSE code from r81813.Nate Begeman2009-09-15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81819 91177308-0d34-0410-b5e6-96231b3b80d8
* Modified the Intel instruction tables to includeSean Callanan2009-09-15
| | | | | | | | versions of CALL and JMP with segmented addresses provided in-line, as pairs of immediates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81818 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the first bits of the ARM target assembler to llvm-mc. For now it onlyKevin Enderby2009-09-15
| | | | | | | | | parses the .word directive as 4 bytes and ARMAsmParser::ParseInstruction will give an error is called. Broke out the test of the .word directive into two different test cases, one for x86 and one for arm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81817 91177308-0d34-0410-b5e6-96231b3b80d8
* Substantially speed up combiner-aa in the following ways:Nate Begeman2009-09-15
| | | | | | | | | | | | | | | 1. Switch from an std::set to a SmallPtrSet for visited chain nodes. 2. Do not force the recursive flattening of token factor nodes, regardless of use count. 3. Immediately process newly created TokenFactor nodes. Also, improve combiner-aa by teaching it that loads to non-overlapping offsets of relatively aligned objects cannot alias. These changes result in a >5x speedup for combiner-aa on most testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81816 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the legalizer to propagate the original alignment of loads and store whenNate Begeman2009-09-15
| | | | | | | it splits them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81815 91177308-0d34-0410-b5e6-96231b3b80d8
* On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit ofDan Gohman2009-09-15
| | | | | | | its result if the condition is false. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81814 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an "original alignment" field to load and store nodes. This enables theNate Begeman2009-09-15
| | | | | | | | DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81813 91177308-0d34-0410-b5e6-96231b3b80d8
* When extending a memset range past the front, set the alignment of theDan Gohman2009-09-14
| | | | | | | memset region to the alignment of the new start address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81810 91177308-0d34-0410-b5e6-96231b3b80d8
* Add early coalescing to liveintervals. This is work in progress and is known ↵Evan Cheng2009-09-14
| | | | | | | | | to miscompute some tests. Read it at your own rish, I have aged 10 year while writing this. The gist of this is if source of some of the copies that feed into a phi join is defined by the phi join, we'd like to eliminate them. However, if any of the non-identity source overlaps the live interval of the phi join then the coalescer won't be able to coalesce them. The early coalescer's job is to eliminate the identity copies by partially-coalescing the two live intervals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81796 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull the creation of the "RewindFunction" function out of the loop. It's onlyBill Wendling2009-09-14
| | | | | | | | created once, so shouldn't be stuck in the middle of the loop. Also early exit if there are no uses of UnwindInst in the function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81785 91177308-0d34-0410-b5e6-96231b3b80d8
* trivial whitespace cleanupJim Grosbach2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81773 91177308-0d34-0410-b5e6-96231b3b80d8
* add PR#Chris Lattner2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81770 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake.Daniel Dunbar2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81757 91177308-0d34-0410-b5e6-96231b3b80d8
* PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart.Chris Lattner2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81755 91177308-0d34-0410-b5e6-96231b3b80d8
* Change MCAsmStreamer to take an MCInstPrinter instead of a Chris Lattner2009-09-14
| | | | | | | | | | | | | full AsmPrinter, and change TargetRegistry to keep track of registered MCInstPrinters. llvm-mc is still linking in the entire target foo to get the code emitter stuff, but this is an important step in the right direction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81754 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a pair of comment typos.Nick Lewycky2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81750 91177308-0d34-0410-b5e6-96231b3b80d8
* Fifth time's a charm! Remove ourselves as abstract type listeners once we'veNick Lewycky2009-09-14
| | | | | | | been told that the type is no longer abstract. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81749 91177308-0d34-0410-b5e6-96231b3b80d8
* Give MCInstPrinter a MCAsmInfo member, make X86ATTInstPrinterChris Lattner2009-09-14
| | | | | | | be a MCInstPrinter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81746 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new MCInstPrinter class, move the (trivial) MCDisassmbler ctor inline.Chris Lattner2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81745 91177308-0d34-0410-b5e6-96231b3b80d8
* tidy up a bit.Chris Lattner2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81744 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't leak! Always remove oneself as a listener after adding oneself.Nick Lewycky2009-09-14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81736 91177308-0d34-0410-b5e6-96231b3b80d8
* Actually remove old types from the set.Nick Lewycky2009-09-13
| | | | | | | | Also break the type verification stuff into its own TypeSet to keep the Verifier pass from becoming an AbstractTypeUser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81729 91177308-0d34-0410-b5e6-96231b3b80d8
* kill off the last use of TRI::AsmName.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81727 91177308-0d34-0410-b5e6-96231b3b80d8
* add some special case handling for strangely named x86 registers.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81726 91177308-0d34-0410-b5e6-96231b3b80d8
* 'printMCInst' doesn't print newlines after instructions anymore.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81723 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused variables.Daniel Dunbar2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81718 91177308-0d34-0410-b5e6-96231b3b80d8
* Storing a set of PATypeHolders is a bad idea because their sort order willNick Lewycky2009-09-13
| | | | | | | | | change as types are refined. Remove abstract types from CheckedTypes when they we're informed that they have been refined. The only way types get refined in the verifier is when later function passes start optimizing. Fixes PR4970. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81716 91177308-0d34-0410-b5e6-96231b3b80d8
* remove all but one reference to TargetRegisterDesc::AsmName.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81714 91177308-0d34-0410-b5e6-96231b3b80d8
* the tblgen produced 'getRegisterName' method does not accessChris Lattner2009-09-13
| | | | | | | the object, make it static instead of const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81711 91177308-0d34-0410-b5e6-96231b3b80d8
* switch the x86 asmprinters to use getRegisterName instead Chris Lattner2009-09-13
| | | | | | | | of getting it from TRI, inst printing now is codegen context free! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81710 91177308-0d34-0410-b5e6-96231b3b80d8
* make tblgen produce a function that returns the name for a physreg.Chris Lattner2009-09-13
| | | | | | | Nothing is using this info yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81707 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate an extraneous use of TRI::getAsmName in a comment.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81705 91177308-0d34-0410-b5e6-96231b3b80d8
* make intel asmprinter use TRI::getAsmName instead of TRI::getName likeChris Lattner2009-09-13
| | | | | | | | all the other targets. Add support for weak/linkonce linkage so it doesn't crash on basically all nontrivial testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81704 91177308-0d34-0410-b5e6-96231b3b80d8
* split MCInst printing out of the X86ATTInstPrinterChris Lattner2009-09-13
| | | | | | | | | class into its own X86ATTInstPrinter class. The inst printer now has just one dependence on the code generator (TRI). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81703 91177308-0d34-0410-b5e6-96231b3b80d8
* reduce indentation with early exit.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81699 91177308-0d34-0410-b5e6-96231b3b80d8
* remove MAI::JumpTableSpecialLabelPrefix now that MAI Chris Lattner2009-09-13
| | | | | | | has real information about linker private linkage. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81695 91177308-0d34-0410-b5e6-96231b3b80d8
* delete the fixme too! :)Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81689 91177308-0d34-0410-b5e6-96231b3b80d8
* merge the linux cpool/jtbl pic tests into pic.ll and convert to filecheck.Chris Lattner2009-09-13
| | | | | | | | | Change the picbase symbol on non-darwin systems from ".Lllvm$4.$piclabel" to ".L4$pb". The actual name doesn't matter and the darwin name is shorter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81688 91177308-0d34-0410-b5e6-96231b3b80d8
* make X86ATTAsmPrinter::PrintPICBaseSymbol forward to X86MCInstLower.Chris Lattner2009-09-13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81685 91177308-0d34-0410-b5e6-96231b3b80d8