summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change RequiresMerge to RequiresUnique. It's a better description of what thisBill Wendling2010-10-061-7/+8
| | | | | | | | fix is trying to accomplish. This code could still use some polishing. llvm-svn: 115759
* - Add TargetInstrInfo::getOperandLatency() to compute operand latencies. ThisEvan Cheng2010-10-0612-65/+335
| | | | | | | | | | | | | allow target to correctly compute latency for cases where static scheduling itineraries isn't sufficient. e.g. variable_ops instructions such as ARM::ldm. This also allows target without scheduling itineraries to compute operand latencies. e.g. X86 can return (approximated) latencies for high latency instructions such as division. - Compute operand latencies for those defined by load multiple instructions, e.g. ldm and those used by store multiple instructions, e.g. stm. llvm-svn: 115755
* If the destination module all ready has a copy of the global coming from theBill Wendling2010-10-061-7/+36
| | | | | | | | | | | | | source module *and* it must be merged (instead of simply replaced or appended to), then merge instead of replacing or adding another global. The ObjC __image_info section was being appended to because of this failure. This caused a crash because the linker expects the image info section to be a specific size. <rdar://problem/8198537> llvm-svn: 115753
* enhance X86TypeInfo to include information about the encoding andChris Lattner2010-10-061-20/+36
| | | | | | | | operand kind for immediates. Use these to define a new BinOpRI class and switch AND8/16/32ri over to it. AND64ri32 needs some more refactoring before it can make the switcheroo. llvm-svn: 115752
* add a class for _REV nodes.Chris Lattner2010-10-061-19/+21
| | | | llvm-svn: 115748
* sink more intelligence into the ITy base class. Now it knowsChris Lattner2010-10-061-12/+21
| | | | | | | that i8 operations are even and i16,i32,i64 operations have a low opcode bit set (they are odd). llvm-svn: 115747
* refactor things a bit, now the REX_W and OpSize prefix bytes are inferred ↵Chris Lattner2010-10-061-22/+46
| | | | | | from the type info. llvm-svn: 115745
* with tblgen suitably extended, we can now get the load node from typeinfo.Chris Lattner2010-10-061-6/+6
| | | | llvm-svn: 115744
* lib/System/Win32/Signals.inc: Enable LLVM_DISABLE_CRT_DEBUG also on mingw.NAKAMURA Takumi2010-10-061-6/+2
| | | | llvm-svn: 115731
* Provide a fast "get me the target triple from the module" API. This canBill Wendling2010-10-062-1/+129
| | | | | | | | drastically reduce the linking time during LTO. Patch by Shantonu Sen! llvm-svn: 115728
* lets go all meta and define new X86 type wrappers that declare the associatedChris Lattner2010-10-062-42/+65
| | | | | | | gunk that goes along with an MVT (e.g. reg class, preferred load operation, memory operand) llvm-svn: 115727
* introduce a new BinOpRM class and use it to factor AND*rm. This points outChris Lattner2010-10-061-21/+16
| | | | | | that I need a heavier handed approach to get ultimate factorization. llvm-svn: 115726
* remove the !nameconcat tblgen feature. It "shorthand" and only used in 4 placesChris Lattner2010-10-061-8/+8
| | | | | | where !cast is just as short. llvm-svn: 115722
* replace stuff like:Chris Lattner2010-10-061-15/+11
| | | | | | | | | | | | | | let AsmString = !strconcat( !strconcat(!strconcat(opc, "${p}"), !strconcat(".", dt)), !strconcat("\t", asm)); with: let AsmString = !strconcat(opc, "${p}", ".", dt, "\t", asm); :) llvm-svn: 115720
* allow !strconcat to take more than two operands to eliminateChris Lattner2010-10-053-16/+12
| | | | | | | | !strconcat(!strconcat(!strconcat(!strconcat Simplify some x86 td files to use it. llvm-svn: 115719
* Use a relocation against the symbol if it is a PLT and the symbol is in anotherRafael Espindola2010-10-051-2/+11
| | | | | | section. Common because of linkonce sections. llvm-svn: 115718
* Comment out fastisel debugging message.Eric Christopher2010-10-051-1/+1
| | | | llvm-svn: 115717
* associate the instruction suffix letter with the integer gpr Chris Lattner2010-10-052-18/+29
| | | | | | register class, and use this to simplify use of BinOpRR. llvm-svn: 115716
* introduce a new BinOpRR class, and convert 4 and instructions to use it.Chris Lattner2010-10-051-19/+12
| | | | llvm-svn: 115715
* Random cleanup and make the intermediate register in fptosi aEric Christopher2010-10-051-5/+5
| | | | | | | | 32-bit fp reg, not 64-bit. Fixes SingleSource. llvm-svn: 115711
* Count uses in all nested loops, not just the deepest.Jakob Stoklund Olesen2010-10-051-1/+2
| | | | llvm-svn: 115710
* Remove SplitAnalysis::removeUse. It was only used to make SplitAnalysisJakob Stoklund Olesen2010-10-052-32/+0
| | | | | | | reusable, but that is no longer relevant since a split will always replace the original. llvm-svn: 115709
* dupli always has an interval now.Jakob Stoklund Olesen2010-10-051-14/+11
| | | | llvm-svn: 115708
* Move cmov pseudo instructions to InstrCompiler,Chris Lattner2010-10-052-582/+77
| | | | | | | | | | | convert all the rest of the cmovs to the multiclass, with good results: X86InstrCMovSetCC.td | 598 +-------------------------------------------------- X86InstrCompiler.td | 61 +++++ 2 files changed, 77 insertions(+), 582 deletions(-) llvm-svn: 115707
* Use #NAME# to have the CMOV multiclass define things with the same names as ↵Chris Lattner2010-10-054-43/+46
| | | | | | | | before (e.g. CMOVBE16rr instead of CMOVBErr16). llvm-svn: 115705
* Another step towards getting rid of static ctors for pass registration: have ↵Owen Anderson2010-10-051-1/+0
| | | | | | | | | | INITIALIZE_PASS AND INITIALIZE_AG_PASS expand to an initializeMyPass() function (in additional to the extant static ctors). Eventually, these will be called from a big InitializeAllPasses() function, and the PassInfo's they create (which would be leaked if this code were used at the moment) will be handed off to a PassRegistry for ownership. llvm-svn: 115703
* enhance tblgen to support anonymous defm's, use this toChris Lattner2010-10-051-16/+16
| | | | | | simplify the X86 CMOVmr's. llvm-svn: 115702
* convert cmov mr patterns to use a multipattern. Death to redundancyChris Lattner2010-10-051-97/+25
| | | | | | and verbosity llvm-svn: 115701
* Implement more alias cases.Rafael Espindola2010-10-051-0/+11
| | | | llvm-svn: 115699
* switch CMOVBE to the multipattern:Chris Lattner2010-10-054-53/+21
| | | | | | | | 21 insertions(+), 53 deletions(-) Moar change coming before I switch the rest. llvm-svn: 115697
* We can split around loops with multiple exits now.Jakob Stoklund Olesen2010-10-051-6/+0
| | | | llvm-svn: 115696
* Update SplitEditor API to reflect the fact that the original live interval isJakob Stoklund Olesen2010-10-053-39/+27
| | | | | | | | | | never kept after splitting. Keeping the original interval made sense when the split region doesn't modify the register, and the original is spilled. We can get the same effect by detecting reloaded values when spilling around copies. llvm-svn: 115695
* Intervals are half-open.Jakob Stoklund Olesen2010-10-051-1/+1
| | | | llvm-svn: 115694
* fix a bug I introduced in r115669, which ended up with MOV64mr_TCChris Lattner2010-10-051-1/+2
| | | | | | not getting marked as mayStore. This fixes llvm-gcc bootstrap. llvm-svn: 115693
* add a multiclass for cmov's, but don't start using it yet.Chris Lattner2010-10-051-1/+40
| | | | llvm-svn: 115692
* use a multipattern to define setcc instructions:Chris Lattner2010-10-051-173/+27
| | | | | | | X86InstrCMovSetCC.td | 200 ++++++--------------------------------------------- 1 file changed, 27 insertions(+), 173 deletions(-) llvm-svn: 115689
* 256 sections should be enough for anyone...Rafael Espindola2010-10-051-1/+1
| | | | llvm-svn: 115687
* move SETB pseudos into the same place in InstrCompiler.tdChris Lattner2010-10-052-21/+13
| | | | llvm-svn: 115686
* Replace a gross hack (the MOV64ri_alt instruction) with a slightly less Chris Lattner2010-10-053-11/+10
| | | | | | gross hack (having the asmmatcher handle the alias). llvm-svn: 115685
* Don't crash in a strange .size directive.Rafael Espindola2010-10-051-5/+15
| | | | llvm-svn: 115684
* distribute the rest of the contents of X86Instr64bit.td out toChris Lattner2010-10-054-331/+264
| | | | | | the right places. X86Instr64bit.td now dies, long live x86-64! llvm-svn: 115669
* When we find a reaching definition, make sure it is visited from all paths byJakob Stoklund Olesen2010-10-051-5/+12
| | | | | | erasing it from the visited set. That ensures we create the right phi defs. llvm-svn: 115666
* Don't use nextIndex to check for live out of instruction.Jakob Stoklund Olesen2010-10-052-17/+13
| | | | | | | | | | | Insert copy after defining instruction. Fix LiveIntervalMap::extendTo to properly handle live segments starting before the current basic block. Make sure the open live range is extended to the inserted copy's use slot. llvm-svn: 115665
* move the rest of the simple 64-bit arithmetic into InstrArithmetic.tdChris Lattner2010-10-052-226/+195
| | | | llvm-svn: 115663
* continue moving 64-bit stuff into X86InstrArithmetic.tdChris Lattner2010-10-052-300/+245
| | | | llvm-svn: 115660
* Fix Punctuation.Michael J. Spencer2010-10-051-1/+1
| | | | llvm-svn: 115657
* MC-COFF: Fix (PR8278) temporary symbol relocations.Michael J. Spencer2010-10-051-1/+2
| | | | llvm-svn: 115656
* Add support for a fill value in the .zero directive.Rafael Espindola2010-10-051-1/+8
| | | | llvm-svn: 115655
* Tweak VNInfo printing.Jakob Stoklund Olesen2010-10-051-0/+2
| | | | llvm-svn: 115650
* Add assert for valid slot indexes.Jakob Stoklund Olesen2010-10-051-0/+1
| | | | llvm-svn: 115649
OpenPOWER on IntegriCloud