summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Added copy sensible construction & assignment to PBQP graphs and fixed a ↵Lang Hames2010-02-092-18/+85
| | | | | | memory access bug in the heuristic solver. llvm-svn: 95633
* Add a new pass to do llvm.objsize lowering using SCEV.Eric Christopher2010-02-091-0/+114
| | | | | | | | | | | Initial skeleton and SCEVUnknown lowering implemented, the rest should come relatively quickly. Move testcase to new directory. Move pass to right before SimplifyLibCalls - which is moved down a bit so we can take advantage of a few opts. llvm-svn: 95628
* pass stringref by value instead of by const&Chris Lattner2010-02-092-2/+3
| | | | llvm-svn: 95627
* move PR6212 to this file.Chris Lattner2010-02-091-0/+25
| | | | llvm-svn: 95624
* Implement AsmPrinter support for several more operators which haveDan Gohman2010-02-091-0/+10
| | | | | | | direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't consistent between targets. llvm-svn: 95620
* Document that MCExpr::Mod is actually remainder.Dan Gohman2010-02-081-2/+2
| | | | | | | | | | | Document that MCExpr::Div, Mod, and the comparison operators are all signed operators. Document that the comparison operators' results are target-dependent. Document that the behavior of shr is target-dependent. llvm-svn: 95619
* fix some problems handling large vectors reported in PR6230Chris Lattner2010-02-082-9/+14
| | | | llvm-svn: 95616
* this is done, tested by CodeGen/ARM/iabs.llChris Lattner2010-02-081-20/+0
| | | | llvm-svn: 95609
* tighten up eh.setjmp sequence a bit.Jim Grosbach2010-02-086-29/+37
| | | | llvm-svn: 95603
* now that @GOTOFF is no longer represented as a suffix on aChris Lattner2010-02-081-6/+4
| | | | | | | MCSymbol, we can remove the 'suffix' argument of GetBlockAddressSymbol. Do so. llvm-svn: 95601
* unify the paths for external symbols and global variables:Chris Lattner2010-02-082-83/+48
| | | | | | 2 files changed, 48 insertions(+), 83 deletions(-) llvm-svn: 95599
* switch the rest of the "@ concatentation" logic in the X86Chris Lattner2010-02-084-127/+63
| | | | | | backend to use X86MCTargetExpr, simplifying a bunch of code. llvm-svn: 95595
* Fixed the AT&T AsmLexer to report the proper stringsSean Callanan2010-02-081-1/+1
| | | | | | | | for register tokens. Before, if it encountered '%al,' it would report 'al,' as the token. Now it correctly reports '%al'. llvm-svn: 95594
* switch ELF @GOTOFF references to use X86MCTargetExpr.Chris Lattner2010-02-085-12/+16
| | | | llvm-svn: 95593
* ConstantFoldConstantExpression can theoretically return the originalDan Gohman2010-02-081-2/+4
| | | | | | expression; don't go into an infinite loop if it does. llvm-svn: 95591
* add an x86 implementation of MCTargetExpr forChris Lattner2010-02-084-3/+89
| | | | | | | representing @GOT and friends. Use it for personality references as a first use. llvm-svn: 95588
* don't make hte dtor private or we can't construct the class.Chris Lattner2010-02-081-1/+1
| | | | llvm-svn: 95587
* Add VCVTR (between floating-point and integer, VFP) for disassembly purpose.Johnny Chen2010-02-081-0/+31
| | | | | | | | | The 'R' suffix means the to-integer operations use the rounding mode specified by the FPSCR, encoded as Inst{7} = 0. A8.6.295 llvm-svn: 95584
* When CodeGen'ing unoptimized code, there may be unfolded constant expressionsDan Gohman2010-02-081-9/+11
| | | | | | | | | in global initializers. Instead of aborting, attempt to fold them on the spot. If folding succeeds, emit the folded expression instead. This fixes PR6255. llvm-svn: 95583
* Add const qualifiers.Dan Gohman2010-02-081-2/+2
| | | | llvm-svn: 95582
* Apply the 95471 fix to SelectionDAGBuilder as well;Dale Johannesen2010-02-081-0/+2
| | | | | | | we can get in here if FastISel gives up in a block. (Actually the two copies of this need to be unified. Later.) llvm-svn: 95579
* In guaranteed tailcall mode, don't decline the tailcall optimizationDan Gohman2010-02-081-7/+10
| | | | | | for blocks ending in "unreachable". llvm-svn: 95565
* Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflectDan Gohman2010-02-085-23/+23
| | | | | | its current purpose. llvm-svn: 95564
* Add VCMP (VFP floating-point compare without 'E' bit set) for disassembly ↵Johnny Chen2010-02-081-0/+16
| | | | | | purpose. llvm-svn: 95560
* add scaffolding for target-specific MCExprs.Chris Lattner2010-02-082-0/+7
| | | | llvm-svn: 95559
* Added VMOVRRS/VMOVSRR to ARMInstrVFP.td for disassembly purpose.Johnny Chen2010-02-081-0/+14
| | | | | | A8.6.331 VMOV (between two ARM core registers and two single-precision registers) llvm-svn: 95548
* Fix x86 JIT stub on MSVC.Torok Edwin2010-02-081-0/+1
| | | | | | Thanks to Kristaps Straupe for noticing the bug. llvm-svn: 95537
* Make the destructor for TypeMapBase protected. Spotted by Duncan Sands withNick Lewycky2010-02-071-2/+1
| | | | | | cppcheck! llvm-svn: 95527
* Give DwarfPrinter a protected (but not virtual) destructor. CppcheckDuncan Sands2010-02-071-0/+2
| | | | | | | | | warns about this base class not having a virtual destructor, but since this class has no virtual methods and neither it or the types derived from it has a destructor, a protected trivial destructor will do (and shuts cppcheck up) the trick without the cost of introducing a vtable. llvm-svn: 95526
* Add suport for VASTART on Mips.Bruno Cardoso Lopes2010-02-062-0/+22
| | | | llvm-svn: 95506
* First step towards varargs support in Mips:Bruno Cardoso Lopes2010-02-061-38/+117
| | | | | | | | - o32 cc must pass all arguments in A0...A3 and stack regardless if its type (but respect the alignment). - Store all variable arguments back to the caller stack. llvm-svn: 95500
* Run codegen dce pass for all targets at all optimization levels. Previously it'sEvan Cheng2010-02-064-4/+14
| | | | | | | | | | only run for x86 with fastisel. I've found it being very effective in eliminating some obvious dead code as result of formal parameter lowering especially when tail call optimization eliminated the need for some of the loads from fixed frame objects. It also shrinks a number of the tests. A couple of tests no longer make sense and are now eliminated. llvm-svn: 95493
* Fix an uninitialized value. Radar 7609421.Bob Wilson2010-02-061-0/+1
| | | | llvm-svn: 95488
* Fix alignment on ppc linux. This fixes the build of crtend.oRafael Espindola2010-02-061-0/+3
| | | | llvm-svn: 95477
* Do not emit callseq instructions around sibcalls. This eliminated some ↵Evan Cheng2010-02-062-23/+27
| | | | | | unnecessary stack adjustments. llvm-svn: 95475
* After Victor's latest commits I am seeing nullDale Johannesen2010-02-061-0/+2
| | | | | | | addresses in dbg.declare; ignore this for the moment to prevent things from breaking. llvm-svn: 95471
* Linker should not remap null operands of metadataVictor Hernandez2010-02-061-2/+6
| | | | llvm-svn: 95468
* Function-local metadata whose operands had been optimized to no longer refer ↵Victor Hernandez2010-02-061-2/+2
| | | | | | to function-local IR were not getting written by BitcodeWriter; solution is for these metadata to be enumerated just like global metadata. llvm-svn: 95467
* Reintroduce the InlineHint function attribute.Jakob Stoklund Olesen2010-02-066-7/+30
| | | | | | | | | | | | This time it's for real! I am going to hook this up in the frontends as well. The inliner has some experimental heuristics for dealing with the inline hint. When given a -respect-inlinehint option, functions marked with the inline keyword are given a threshold just above the default for -O3. We need some experiments to determine if that is the right thing to do. llvm-svn: 95466
* Set DW_AT_artificial only if argument is marked as artificial.Devang Patel2010-02-062-5/+35
| | | | llvm-svn: 95461
* Handle AddrMode6 (for NEON load/stores) in Thumb2's rewriteT2FrameIndex.Bob Wilson2010-02-061-11/+10
| | | | | | Radar 7614112. llvm-svn: 95456
* Don't unroll loops containing function calls.Jakob Stoklund Olesen2010-02-051-2/+8
| | | | llvm-svn: 95454
* Update CodeMetrics to count 'big' function calls explicitly.Jakob Stoklund Olesen2010-02-051-5/+9
| | | | llvm-svn: 95453
* Do not generate specification DIE for nested functions.Devang Patel2010-02-051-1/+7
| | | | llvm-svn: 95452
* fix incorrect encoding of SBB8mi that Kevin noticed.Chris Lattner2010-02-051-2/+2
| | | | llvm-svn: 95448
* fix a case where we'd mis-encode fisttp because of an incorrect (andChris Lattner2010-02-051-1/+0
| | | | | | redundant with a correct one) pattern that was added for the disassembler. llvm-svn: 95446
* add note.Chris Lattner2010-02-051-0/+2
| | | | llvm-svn: 95445
* print encodings like this:Chris Lattner2010-02-051-1/+1
| | | | | | | | | | | pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0x00,0x00,0x00] instead of like this: pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0000,0000,0000] this only affects 0. llvm-svn: 95441
* port X86InstrInfo::determineREX over to the new encoder.Chris Lattner2010-02-053-10/+109
| | | | llvm-svn: 95440
* Teach SimplifyCFG about magic pointer constants.Jakob Stoklund Olesen2010-02-052-40/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Weird code sometimes uses pointer constants other than null. This patch teaches SimplifyCFG to build switch instructions in those cases. Code like this: void f(const char *x) { if (!x) puts("null"); else if ((uintptr_t)x == 1) puts("one"); else if (x == (char*)2 || x == (char*)3) puts("two"); else if ((intptr_t)x == 4) puts("four"); else puts(x); } Now becomes a switch: define void @f(i8* %x) nounwind ssp { entry: %magicptr23 = ptrtoint i8* %x to i64 ; <i64> [#uses=1] switch i64 %magicptr23, label %if.else16 [ i64 0, label %if.then i64 1, label %if.then2 i64 2, label %if.then9 i64 3, label %if.then9 i64 4, label %if.then14 ] Note that LLVM's own DenseMap uses magic pointers. llvm-svn: 95439
OpenPOWER on IntegriCloud