summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Add pseudo instruction TRAP for disassembly, which is encoded according to A5-21Johnny Chen2010-02-111-0/+10
| | | | | | as the "Permanently UNDEFINED" instruction. llvm-svn: 95873
* Use .empty() instead of .size().Bill Wendling2010-02-111-2/+2
| | | | llvm-svn: 95871
* dont' call getX86RegNum on X86::RIP, it doesn't like that. ThisChris Lattner2010-02-112-3/+7
| | | | | | fixes the remaining x86-64 jit failures afaik. llvm-svn: 95867
* fix a really nasty bug I introduced in r95693: r12 (and r12d, Chris Lattner2010-02-112-7/+12
| | | | | | | | | r12b, etc) also encodes to a R/M value of 4, which is just as illegal as ESP/RSP for the non-sib version an address. This fixes x86-64 jit miscompilations of a bunch of programs. llvm-svn: 95866
* Add and commonize encoder support for all immediates.Chris Lattner2010-02-111-110/+35
| | | | | | | | | | | | | | | Stub out some dummy fixups to make things work. We can now emit fixups like this: subl $20, %esp ## encoding: [0x83,0xec,A] ## fixup A - offset: 2, value: 20, kind: fixup_1byte_imm Emitting $20 as a single-byte fixup to be later resolved by the assembler is ridiculous of course (vs just emitting the byte) but this is a failure of the matcher, which should be producing an imm of 20, not an MCExpr of 20. llvm-svn: 95860
* generalize EmitDisplacementField to work with any sizeChris Lattner2010-02-111-14/+13
| | | | | | and rename it to EmitImmediate. llvm-svn: 95859
* eliminate the dead IsPCRel argument.Chris Lattner2010-02-111-9/+6
| | | | llvm-svn: 95858
* eliminate the dead "PCAdj" logic.Chris Lattner2010-02-111-22/+9
| | | | llvm-svn: 95857
* Fix some of the memcheck errors found in the JIT unittests.Jeffrey Yasskin2010-02-112-26/+12
| | | | llvm-svn: 95856
* Rename ValueRequiresCast to ShouldOptimizeCast, to better reflectChris Lattner2010-02-113-55/+97
| | | | | | | | | | | | | | what it does. Enhance it to return false to optimizing vector sign extensions from vector comparisions, which is the idiom used to get a splatted vector for a vector comparison. Doing this breaks vector-casts.ll, add some compensating transformations to handle the important case they cover without depending on this canonicalization. This fixes rdar://7434900 a serious pessimization of vector compares. llvm-svn: 95855
* Make DSE only scan blocks that are reachable from the entryChris Lattner2010-02-111-1/+7
| | | | | | | | | block. Other blocks may have pointer cycles that will crash basicaa and other alias analyses. In any case, there is no point wasting cycles optimizing dead blocks. This fixes rdar://7635088 llvm-svn: 95852
* Make jump threading honor x|undef -> true and x&undef -> false,Chris Lattner2010-02-111-3/+8
| | | | | | instead of considering x|undef -> x, which may not be true. llvm-svn: 95850
* Add ConstantExpr handling to Intrinsic::objectsize lowering.Eric Christopher2010-02-111-1/+26
| | | | | | | Update testcase accordingly now that we can optimize another section. llvm-svn: 95846
* Fix to get it to compile.Bill Wendling2010-02-111-1/+1
| | | | llvm-svn: 95840
* Don't print out a default newline when emitting the section offset. There areBill Wendling2010-02-112-2/+1
| | | | | | almost always comments afterwards that need printing. llvm-svn: 95839
* Make it possible to create multiple JIT instances at the same time, by removingJeffrey Yasskin2010-02-113-43/+129
| | | | | | | | | | the global TheJIT and TheJITResolver variables. Lazy compilation is supported by a global map from a stub address to the JITResolver that knows how to compile it. Patch by Olivier Meurant! llvm-svn: 95837
* Reuse operand location when updating PHI instructions.Jakob Stoklund Olesen2010-02-111-7/+26
| | | | | | | | Calling RemoveOperand is very expensive on huge PHI instructions. This makes early tail duplication run twice as fast on the Firefox JavaScript interpreter. llvm-svn: 95832
* Remove duplicate successors from indirectbr instructions before building the ↵Jakob Stoklund Olesen2010-02-111-2/+8
| | | | | | | | | machine CFG. This makes early tail duplication run 60 times faster when compiling the Firefox JavaScript interpreter, see PR6186. llvm-svn: 95831
* Ignore dbg info intrinsics.Devang Patel2010-02-111-0/+4
| | | | llvm-svn: 95828
* The previous fix of widening divides that trap was too fragile as it depends ↵Mon P Wang2010-02-103-24/+107
| | | | | | | | | | | on custom lowering and requires that certain types exist in ValueTypes.h. Modified widening to check if an op can trap and if so, the widening algorithm will apply only the op on the defined elements. It is safer to do this in widening because the optimizer can't guarantee removing unused ops in some cases. llvm-svn: 95823
* Ignore debug info one more place during coalescing.Dale Johannesen2010-02-101-0/+2
| | | | llvm-svn: 95819
* Delete dead PHI machine instructions. These can be created due to typeBob Wilson2010-02-101-1/+1
| | | | | | | | | legalization even when the IR-level optimizer has removed dead phis, such as when the high half of an i64 value is unused on a 32-bit target. I had to adjust a few test cases that had dead phis. This is a partial fix for Radar 7627077. llvm-svn: 95816
* Skip debug info in a couple of places.Dale Johannesen2010-02-101-3/+7
| | | | llvm-svn: 95814
* Use an index instead of pointers into the vector. If the vector resizes, thenBill Wendling2010-02-102-12/+13
| | | | | | the pointer values could be invalid. llvm-svn: 95813
* When I rewrote this loop per Chris' preference IDale Johannesen2010-02-101-0/+3
| | | | | | changed its behavior. Oops. llvm-svn: 95811
* A few missed optimizations; the last one could have a significant impact onEli Friedman2010-02-101-0/+66
| | | | | | code with lots of bitfields. llvm-svn: 95809
* Strip new llvm.dbg.value intrinsic.Devang Patel2010-02-101-0/+9
| | | | llvm-svn: 95807
* MC/X86 AsmMatcher: Fix a use after free spotted by d0k, and de-XFAILDaniel Dunbar2010-02-101-18/+15
| | | | | | x86_32-encoding.s in on expectation of it passing. llvm-svn: 95806
* Minor whitespace cleanups.Dan Gohman2010-02-101-3/+1
| | | | llvm-svn: 95801
* Use an AssemblyAnnotatorWriter to clean up IVUsers' debug output.Dan Gohman2010-02-101-1/+10
| | | | | | The "uses=" comments are just clutter in this context. llvm-svn: 95799
* Add a hook to AssemblyAnnotationWriter to allow custom info commentsDan Gohman2010-02-101-0/+5
| | | | | | to be printed, in place of the familiar "uses=" comments. llvm-svn: 95798
* Fix several comments which had previously been "the the" where aDan Gohman2010-02-102-2/+2
| | | | | | different word was intended. llvm-svn: 95795
* Added NOP, DBG, SVC to the instruction table for disassembly purpose.Johnny Chen2010-02-101-0/+20
| | | | llvm-svn: 95784
* Fix "the the" and similar typos.Dan Gohman2010-02-1039-46/+46
| | | | llvm-svn: 95781
* emit some simple (and probably incorrect) fixups for symbolicChris Lattner2010-02-101-34/+32
| | | | | | displacement values. llvm-svn: 95773
* keep track of what the current byte being emitted isChris Lattner2010-02-101-74/+87
| | | | | | throughout the X86 encoder. llvm-svn: 95771
* simplify displacement handling, emit displacements by-operandChris Lattner2010-02-101-50/+19
| | | | | | even for the immediate case. No functionality change. llvm-svn: 95770
* Canonicalize sizeof and alignof on pointer types to a canonicalDan Gohman2010-02-101-0/+19
| | | | | | pointer type. llvm-svn: 95769
* MC: Switch MCFixup to just hold an MCExpr pointer instead of index into theDaniel Dunbar2010-02-102-5/+9
| | | | | | MCInst it came from. llvm-svn: 95767
* Now that ShrinkDemandedOps() is separated out from DAG combine. It sometimes ↵Evan Cheng2010-02-101-1/+18
| | | | | | leave some obvious nops which dag combine used to clean up afterwards e.g. (trunk (ext n)) -> n. Look for them and squash them. llvm-svn: 95757
* llvm-mc: Remove --show-fixups and always show as part of --show-encoding.Daniel Dunbar2010-02-101-19/+6
| | | | | | Also, fix a silly memory leak. llvm-svn: 95752
* Rewrite loop to suit Chris' preference.Dale Johannesen2010-02-101-16/+19
| | | | llvm-svn: 95749
* fix a layering violation: VirtRegRewriter.cpp shouldn't use AsmPrinter.h.Chris Lattner2010-02-102-5/+4
| | | | llvm-svn: 95748
* Remove duplicated #include.Evan Cheng2010-02-101-1/+0
| | | | llvm-svn: 95747
* Emit an error for illegal inline asm constraint (which uses illegal type) ↵Evan Cheng2010-02-102-1/+14
| | | | | | rather than asserting. llvm-svn: 95746
* fix missing #includes.Chris Lattner2010-02-103-1/+3
| | | | llvm-svn: 95745
* daniel *really* likes fixups!Chris Lattner2010-02-101-0/+1
| | | | llvm-svn: 95742
* Improve comments a even more.Bill Wendling2010-02-101-3/+3
| | | | llvm-svn: 95740
* Skip DBG_VALUE many places in live intervals andDale Johannesen2010-02-102-38/+57
| | | | | | | | | register coalescing. This fixes many crashes and places where debug info affects codegen (when dbg.value is lowered to machine instructions, which it isn't yet in TOT). llvm-svn: 95739
* Move verbose asm instruction comments to using MCStreamer.Chris Lattner2010-02-101-74/+61
| | | | | | | | | | | | The major win of this is that the code is simpler and they print on the same line as the instruction again: movl %eax, 96(%esp) ## 4-byte Spill movl 96(%esp), %eax ## 4-byte Reload cmpl 92(%esp), %eax ## 4-byte Folded Reload jl LBB7_86 llvm-svn: 95738
OpenPOWER on IntegriCloud