summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Don't pull a load through a callseq_start if the load's chainDan Gohman2009-09-151-1/+2
| | | | | | | | | 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. llvm-svn: 81821
* Remove incorrect CSE code from r81813.Nate Begeman2009-09-151-2/+0
| | | | llvm-svn: 81819
* Modified the Intel instruction tables to includeSean Callanan2009-09-152-4/+37
| | | | | | | versions of CALL and JMP with segmented addresses provided in-line, as pairs of immediates. llvm-svn: 81818
* Added the first bits of the ARM target assembler to llvm-mc. For now it onlyKevin Enderby2009-09-154-1/+115
| | | | | | | | 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. llvm-svn: 81817
* Substantially speed up combiner-aa in the following ways:Nate Begeman2009-09-151-33/+69
| | | | | | | | | | | | | | 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. llvm-svn: 81816
* Teach the legalizer to propagate the original alignment of loads and store whenNate Begeman2009-09-151-6/+11
| | | | | | it splits them. llvm-svn: 81815
* On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit ofDan Gohman2009-09-151-3/+5
| | | | | | its result if the condition is false. llvm-svn: 81814
* Add an "original alignment" field to load and store nodes. This enables theNate Begeman2009-09-152-19/+28
| | | | | | | DAG Combiner to disambiguate chains for loads and stores of types which are broken up by the Legalizer into smaller pieces. llvm-svn: 81813
* When extending a memset range past the front, set the alignment of theDan Gohman2009-09-141-0/+1
| | | | | | memset region to the alignment of the new start address. llvm-svn: 81810
* Add early coalescing to liveintervals. This is work in progress and is known ↵Evan Cheng2009-09-141-24/+164
| | | | | | | | 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. llvm-svn: 81796
* Pull the creation of the "RewindFunction" function out of the loop. It's onlyBill Wendling2009-09-141-14/+25
| | | | | | | 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. llvm-svn: 81785
* trivial whitespace cleanupJim Grosbach2009-09-141-2/+2
| | | | llvm-svn: 81773
* add PR#Chris Lattner2009-09-141-0/+1
| | | | llvm-svn: 81770
* Update CMake.Daniel Dunbar2009-09-141-0/+1
| | | | llvm-svn: 81757
* PIC16 does allow colon after MBB labels, simplify EmitBasicBlockStart.Chris Lattner2009-09-142-6/+3
| | | | llvm-svn: 81755
* Change MCAsmStreamer to take an MCInstPrinter instead of a Chris Lattner2009-09-143-9/+26
| | | | | | | | | | | 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. llvm-svn: 81754
* Fix a pair of comment typos.Nick Lewycky2009-09-141-2/+3
| | | | llvm-svn: 81750
* Fifth time's a charm! Remove ourselves as abstract type listeners once we'veNick Lewycky2009-09-141-3/+16
| | | | | | been told that the type is no longer abstract. llvm-svn: 81749
* Give MCInstPrinter a MCAsmInfo member, make X86ATTInstPrinterChris Lattner2009-09-143-11/+14
| | | | | | be a MCInstPrinter. llvm-svn: 81746
* add a new MCInstPrinter class, move the (trivial) MCDisassmbler ctor inline.Chris Lattner2009-09-142-3/+14
| | | | llvm-svn: 81745
* tidy up a bit.Chris Lattner2009-09-141-16/+8
| | | | llvm-svn: 81744
* Don't leak! Always remove oneself as a listener after adding oneself.Nick Lewycky2009-09-141-6/+15
| | | | llvm-svn: 81736
* Actually remove old types from the set.Nick Lewycky2009-09-131-12/+30
| | | | | | | Also break the type verification stuff into its own TypeSet to keep the Verifier pass from becoming an AbstractTypeUser. llvm-svn: 81729
* kill off the last use of TRI::AsmName.Chris Lattner2009-09-131-1/+1
| | | | llvm-svn: 81727
* add some special case handling for strangely named x86 registers.Chris Lattner2009-09-131-1/+25
| | | | llvm-svn: 81726
* 'printMCInst' doesn't print newlines after instructions anymore.Chris Lattner2009-09-131-0/+1
| | | | llvm-svn: 81723
* Remove unused variables.Daniel Dunbar2009-09-132-2/+0
| | | | llvm-svn: 81718
* Storing a set of PATypeHolders is a bad idea because their sort order willNick Lewycky2009-09-131-2/+10
| | | | | | | | 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. llvm-svn: 81716
* remove all but one reference to TargetRegisterDesc::AsmName.Chris Lattner2009-09-1313-74/+49
| | | | llvm-svn: 81714
* the tblgen produced 'getRegisterName' method does not accessChris Lattner2009-09-1313-14/+13
| | | | | | the object, make it static instead of const. llvm-svn: 81711
* switch the x86 asmprinters to use getRegisterName instead Chris Lattner2009-09-135-18/+11
| | | | | | | of getting it from TRI, inst printing now is codegen context free! llvm-svn: 81710
* make tblgen produce a function that returns the name for a physreg.Chris Lattner2009-09-1313-4/+29
| | | | | | Nothing is using this info yet. llvm-svn: 81707
* eliminate an extraneous use of TRI::getAsmName in a comment.Chris Lattner2009-09-131-1/+1
| | | | llvm-svn: 81705
* make intel asmprinter use TRI::getAsmName instead of TRI::getName likeChris Lattner2009-09-132-15/+21
| | | | | | | all the other targets. Add support for weak/linkonce linkage so it doesn't crash on basically all nontrivial testcases. llvm-svn: 81704
* split MCInst printing out of the X86ATTInstPrinterChris Lattner2009-09-136-69/+108
| | | | | | | | class into its own X86ATTInstPrinter class. The inst printer now has just one dependence on the code generator (TRI). llvm-svn: 81703
* reduce indentation with early exit.Chris Lattner2009-09-131-45/+45
| | | | llvm-svn: 81699
* remove MAI::JumpTableSpecialLabelPrefix now that MAI Chris Lattner2009-09-133-11/+4
| | | | | | has real information about linker private linkage. llvm-svn: 81695
* delete the fixme too! :)Chris Lattner2009-09-131-2/+0
| | | | llvm-svn: 81689
* merge the linux cpool/jtbl pic tests into pic.ll and convert to filecheck.Chris Lattner2009-09-131-8/+2
| | | | | | | 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. llvm-svn: 81688
* make X86ATTAsmPrinter::PrintPICBaseSymbol forward to X86MCInstLower.Chris Lattner2009-09-132-9/+7
| | | | llvm-svn: 81685
* replace printBasicBlockLabel with EmitBasicBlockStart,Chris Lattner2009-09-1314-28/+25
| | | | | | | now that printBasicBlockLabel is only used for starting a MBB. This allows elimination of a bunch of arguments. llvm-svn: 81684
* fix MCSymbol printing on darwin to exactly match the mangler (handling of \n ↵Chris Lattner2009-09-131-8/+28
| | | | | | and " in a symbol name). llvm-svn: 81683
* Make the MC symbol printer and llvm::Mangler exactly agree on manglingChris Lattner2009-09-132-20/+51
| | | | | | for systems that don't support quoting (PR4966). llvm-svn: 81682
* convert some uses of printBasicBlockLabel to use GetMBBSymbolChris Lattner2009-09-1314-34/+47
| | | | | | instead. llvm-svn: 81677
* Fix merge problemAnton Korobeynikov2009-09-131-7/+0
| | | | llvm-svn: 81658
* Define proper subreg sets for arm - this should fix bunch of subtle problemsAnton Korobeynikov2009-09-131-5/+25
| | | | | | with subreg - superreg mapping and also fix PR4965. llvm-svn: 81657
* Experimental fix for PR4960.Daniel Dunbar2009-09-121-5/+14
| | | | | | - Could we just always implement this as __clear_cache for __GNUC__? llvm-svn: 81655
* devirtualize AsmPrinter::printBasicBlockLabel since it is never overridden.Chris Lattner2009-09-123-13/+13
| | | | | | | | Move GetMBBSymbol up to AsmPrinter and make printBasicBlockLabel use it so that we only have one place that decides what to name bb labels. Hopefully various clients of printBasicBlockLabel can start using GetMBBSymbol instead. llvm-svn: 81652
* Remove unnecessary #include.Dan Gohman2009-09-121-1/+0
| | | | llvm-svn: 81636
* Add QPR_VFP2 regclass and add copy_to_regclass nodes, where needed toAnton Korobeynikov2009-09-123-7/+26
| | | | | | constraint the register usage. llvm-svn: 81635
OpenPOWER on IntegriCloud