summaryrefslogtreecommitdiffstats
path: root/llvm/include
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove the files for r128308 as it is causing a buildbot failure.Kevin Enderby2011-03-261-106/+0
| | | | llvm-svn: 128309
* Adding a C API to the disassembler for use by such tools as Darwin's otool(1).Kevin Enderby2011-03-261-0/+106
| | | | | | | | | | This is a work in progress as the interface for producing symbolic operands is not done. But a hacked prototype using information from the object file's relocation entiries and replacing immediate operands with MCExpr's has been shown to work with no changes to the instrucion printer. These APIs will be moved into a dynamic library at some point. llvm-svn: 128308
* Clean up assembly statement separator support.Jim Grosbach2011-03-242-6/+6
| | | | | | | | The MC asm lexer wasn't honoring a non-default (anything but ';') statement separator. Fix that, and generalize a bit to support multi-character statement separators. llvm-svn: 128227
* Fix typo in comment.Jay Foad2011-03-241-1/+1
| | | | llvm-svn: 128216
* Add comment to clarify what ↵Evan Cheng2011-03-241-1/+4
| | | | | | MachineConstantPoolEntry::isMachineConstantPoolEntry() means. llvm-svn: 128204
* Fix comments.Jim Grosbach2011-03-231-2/+2
| | | | llvm-svn: 128182
* Add a lto_codegen_compile_to_file to avoid producing a file, reading it toRafael Espindola2011-03-221-0/+7
| | | | | | memory and writing it back to disk. llvm-svn: 128108
* We don't need a null terminator for the output file.Rafael Espindola2011-03-221-2/+4
| | | | llvm-svn: 128098
* Propogate the error message, not just the error state.Jim Grosbach2011-03-221-0/+1
| | | | llvm-svn: 128094
* Properly initialize all fields in CrashReporterCleanupContext. This caused ↵Ted Kremenek2011-03-221-2/+1
| | | | | | the buildbot failure earlier. llvm-svn: 128071
* Rework CrashRecoveryContextCleanup to provide a simpler way to create ↵Ted Kremenek2011-03-221-52/+60
| | | | | | | | cleanup objects, and provide a new cleanup for decrementing reference counts of objects with intrusive reference counts. llvm-svn: 128055
* Relax access control on 'Release' method of RefCountedBase.Ted Kremenek2011-03-221-3/+1
| | | | llvm-svn: 128054
* Library-ize the dyld components of llvm-rtdyld.Jim Grosbach2011-03-211-0/+45
| | | | | | | | | Move the dynamic linking functionality of the llvm-rtdyld program into an ExecutionEngine support library. Update llvm-rtdyld to just load an object file into memory, use the library to process it, then run the _main() function, if one is found. llvm-svn: 128031
* Provide a means for CrashRecovery clients to determine if code is currently ↵Ted Kremenek2011-03-211-0/+4
| | | | | | running while crash recovery cleanups are being processed. llvm-svn: 128008
* Allow a client to clear an IntrustiveRefCntPtr (deliberately leaking the ↵Ted Kremenek2011-03-211-0/+4
| | | | | | referenced object). llvm-svn: 128007
* Fix unused param warning.Eric Christopher2011-03-211-1/+1
| | | | llvm-svn: 128005
* Fix typos in assert messages.Jay Foad2011-03-211-2/+2
| | | | llvm-svn: 128002
* We need to pass the TargetMachine object to the InstPrinter if we are printingBill Wendling2011-03-211-2/+4
| | | | | | | | | the alias of an InstAlias instead of the thing being aliased. Because we need to know the features that are valid for an InstAlias. This is part of a work-in-progress. llvm-svn: 127986
* Re-apply r127953 with fixes: eliminate empty return block if it has no ↵Evan Cheng2011-03-211-0/+8
| | | | | | predecessors; update dominator tree if cfg is modified. llvm-svn: 127981
* If a class inherits from RefCountedBaseVPTR allow all its subclasses to be ↵Argyrios Kyrtzidis2011-03-203-4/+4
| | | | | | used with IntrusiveRefCntPtr. llvm-svn: 127966
* Revert r127953, "SimplifyCFG has stopped duplicating returns into predecessorsDaniel Dunbar2011-03-191-8/+0
| | | | | | to canonicalize IR", it broke a lot of things. llvm-svn: 127954
* SimplifyCFG has stopped duplicating returns into predecessors to canonicalize IREvan Cheng2011-03-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to have single return block (at least getting there) for optimizations. This is general goodness but it would prevent some tailcall optimizations. One specific case is code like this: int f1(void); int f2(void); int f3(void); int f4(void); int f5(void); int f6(void); int foo(int x) { switch(x) { case 1: return f1(); case 2: return f2(); case 3: return f3(); case 4: return f4(); case 5: return f5(); case 6: return f6(); } } => LBB0_2: ## %sw.bb callq _f1 popq %rbp ret LBB0_3: ## %sw.bb1 callq _f2 popq %rbp ret LBB0_4: ## %sw.bb3 callq _f3 popq %rbp ret This patch teaches codegenprep to duplicate returns when the return value is a phi and where the phi operands are produced by tail calls followed by an unconditional branch: sw.bb7: ; preds = %entry %call8 = tail call i32 @f5() nounwind br label %return sw.bb9: ; preds = %entry %call10 = tail call i32 @f6() nounwind br label %return return: %retval.0 = phi i32 [ %call10, %sw.bb9 ], [ %call8, %sw.bb7 ], ... [ 0, %entry ] ret i32 %retval.0 This allows codegen to generate better code like this: LBB0_2: ## %sw.bb jmp _f1 ## TAILCALL LBB0_3: ## %sw.bb1 jmp _f2 ## TAILCALL LBB0_4: ## %sw.bb3 jmp _f3 ## TAILCALL rdar://9147433 llvm-svn: 127953
* Reapply 127939 since Daniel fixed the breakage. <rdar://problem/9012638>Stuart Hastings2011-03-191-0/+2
| | | | llvm-svn: 127944
* Revert 127939. <rdar://problem/9012638>Stuart Hastings2011-03-191-2/+0
| | | | llvm-svn: 127943
* Revise r126127 to address Daniel's comments. <rdar://problem/9012638>Stuart Hastings2011-03-191-0/+2
| | | | llvm-svn: 127939
* Tweak CrashRecoveryContextCleanup to provide an easy method for clients to ↵Ted Kremenek2011-03-191-6/+22
| | | | | | select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant. llvm-svn: 127929
* If an AllocaInst referred by DbgDeclareInst is used by a LoadInst then the ↵Devang Patel2011-03-181-0/+6
| | | | | | LoadInst should also get a corresponding llvm.dbg.value intrinsic. llvm-svn: 127924
* Beginnings of MC-JIT code generation.Jim Grosbach2011-03-181-0/+3
| | | | | | | | | | | Proof-of-concept code that code-gens a module to an in-memory MachO object. This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld for similarly conceptual work for that part) which will take the compiled object and link it together with the rest of the system, providing back to the JIT a table of available symbols which will be used to respond to the getPointerTo*() queries. llvm-svn: 127916
* Avoid creating canonical induction variables for non-native types.Andrew Trick2011-03-181-0/+2
| | | | | | | | For example, on 32-bit architecture, don't promote all uses of the IV to 64-bits just because one use is a 64-bit cast. Alternate implementation of the patch by Arnaud de Grandmaison. llvm-svn: 127884
* Tidy up.Jim Grosbach2011-03-181-2/+2
| | | | llvm-svn: 127883
* Tweak CrashRecoveryContextCleanup::createCleanup() to use the 'delete' ↵Ted Kremenek2011-03-181-1/+1
| | | | | | cleanup as opposed to the 'destructor' cleanup (reclaims more memory). llvm-svn: 127865
* Add new CrashRecoveryContextCleanup subclass: ↵Ted Kremenek2011-03-181-1/+13
| | | | | | CrashRecoveryContextDeleteCleanup. This deletes the object, not just calls its destructor. llvm-svn: 127855
* Augment CrashRecoveryContext to have registered "cleanup" objects that can ↵Ted Kremenek2011-03-181-1/+65
| | | | | | be used to release resources during a crash. llvm-svn: 127849
* Added isValidRewrite() to check the result of ScalarEvolutionExpander.Andrew Trick2011-03-171-0/+6
| | | | | | | | | SCEV may generate expressions composed of multiple pointers, which can lead to invalid GEP expansion. Until we can teach SCEV to follow strict pointer rules, make sure no bad GEPs creep into IR. Fixes rdar://problem/9038671. llvm-svn: 127839
* Use RequiresNullTerminator to create buffers without a null terminatorRafael Espindola2011-03-171-1/+2
| | | | | | instead of copying. llvm-svn: 127835
* Try to not lose variable's debug info during instcombine.Devang Patel2011-03-171-0/+5
| | | | | | | This is done by lowering dbg.declare intrinsic into dbg.value intrinsic. Radar 9143931. llvm-svn: 127834
* Refactor into a separate utility function.Devang Patel2011-03-171-0/+12
| | | | llvm-svn: 127832
* Add an argument to APInt's magic udiv calculation to specify the number of ↵Benjamin Kramer2011-03-171-1/+1
| | | | | | | | bits that are known zero in the divided number. This will come in handy soon. llvm-svn: 127828
* Dead code elimination may separate the live interval into multiple connected ↵Jakob Stoklund Olesen2011-03-171-1/+3
| | | | | | | | | components. I have convinced myself that it can only happen when a phi value dies. When it happens, allocate new virtual registers for the components. llvm-svn: 127827
* Add XCore intrinsic for setpsc.Richard Osborne2011-03-171-0/+2
| | | | llvm-svn: 127821
* Move more logic into getTypeForExtArgOrReturn.Cameron Zwarich2011-03-171-3/+4
| | | | llvm-svn: 127809
* Rename getTypeForExtendedInteger() to getTypeForExtArgOrReturn().Cameron Zwarich2011-03-171-2/+2
| | | | llvm-svn: 127807
* Add support in the LTO library for loading an object from the middleRafael Espindola2011-03-171-1/+9
| | | | | | of an file. llvm-svn: 127781
* Rewrite instructions as part of ConnectedVNInfoEqClasses::Distribute.Jakob Stoklund Olesen2011-03-171-5/+6
| | | | llvm-svn: 127779
* The x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byteCameron Zwarich2011-03-161-0/+11
| | | | | | | | | | | rather than an int. Thankfully, this only causes LLVM to miss optimizations, not generate incorrect code. This just fixes the zext at the return. We still insert an i32 ZextAssert when reading a function's arguments, but it is followed by a truncate and another i8 ZextAssert so it is not optimized. llvm-svn: 127766
* Add XCore intrinsics for setclk, setrdy.Richard Osborne2011-03-161-0/+4
| | | | llvm-svn: 127761
* Add checkevent intrinsic to check if any resources owned by the current threadRichard Osborne2011-03-161-0/+6
| | | | | | can event. llvm-svn: 127741
* Add TargetData::fitsInLegalInteger().Cameron Zwarich2011-03-161-1/+12
| | | | llvm-svn: 127714
* Add scei vendorJohn Thompson2011-03-151-1/+2
| | | | llvm-svn: 127705
* Add XCore intrinsics for getps, setps, setsr and clrsr.Richard Osborne2011-03-151-0/+5
| | | | llvm-svn: 127678
OpenPOWER on IntegriCloud