summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Tidy up.Jim Grosbach2011-03-221-2/+1
| | | | llvm-svn: 128096
* Add missing file from previous commit.Jim Grosbach2011-03-221-0/+161
| | | | llvm-svn: 128095
* Propogate the error message, not just the error state.Jim Grosbach2011-03-221-0/+5
| | | | llvm-svn: 128094
* Add simple arg passing to MC-JIT and support for exit() call.Jim Grosbach2011-03-223-4/+115
| | | | | | | | | | | | | Support argument passing simple, common, prototypes directly. More complicated scenarios will require building up a stub function, which the MC-JIT isn't set up to handle yet. Add Intercept.cpp, which is just a copy from ExecutionEngine/JIT for now, to handle looking looking up external symbol names. This probably more properly belongs as part of RuntimeDyld. It'll migrate there as things flesh out more fully. llvm-svn: 128090
* Trailing whitespace.Jim Grosbach2011-03-225-46/+46
| | | | llvm-svn: 128086
* Change MRC and MRC2 instructions to model the output register properlyBruno Cardoso Lopes2011-03-223-24/+37
| | | | llvm-svn: 128085
* ptx: add analyze/insert/remove branchChe-Liang Chiou2011-03-223-3/+170
| | | | llvm-svn: 128084
* Fix comment in header.Eric Christopher2011-03-221-1/+1
| | | | llvm-svn: 128077
* Properly initialize all fields in CrashReporterCleanupContext. This caused ↵Ted Kremenek2011-03-221-1/+1
| | | | | | the buildbot failure earlier. llvm-svn: 128071
* Handle another case that Frits suggested.Anders Carlsson2011-03-221-2/+4
| | | | llvm-svn: 128068
* Temporarily stop recovering resources in CrashRecoveryContext while I ↵Ted Kremenek2011-03-221-1/+1
| | | | | | investigate further why this works on my machine and not on others. llvm-svn: 128065
* Hook up the MCJIT to the RuntimeDyld library.Jim Grosbach2011-03-223-3/+22
| | | | | | | | Lots of cleanup to make the interfaces prettier, use the JITMemoryManager, handle multiple functions and modules, etc.. This gets far enough that the MCJIT compiles and runs code, though. llvm-svn: 128052
* Clear map after use.Jakob Stoklund Olesen2011-03-221-0/+1
| | | | | | This is likely to fix the segfault in llvm-gcc-x86_64-darwin10-cross-mingw32. llvm-svn: 128051
* Initialize HasError.Jim Grosbach2011-03-221-0/+2
| | | | llvm-svn: 128049
* Avoid -Wunused-variable in -asserts buildsMatt Beaumont-Gay2011-03-221-6/+4
| | | | llvm-svn: 128048
* Dont emit 'DBG_VALUE %noreg, ...' to terminate user variable ranges.Jakob Stoklund Olesen2011-03-223-49/+76
| | | | | | | | | | These ranges get completely jumbled by the post-ra scheduler, and it is not really reasonable to expect it to make sense of them. Instead, teach DwarfDebug to notice when user variables in registers are clobbered, and terminate the ranges there. llvm-svn: 128045
* Fix fast-isel address mode folding to avoid folding instructionsDan Gohman2011-03-221-16/+22
| | | | | | outside of the current basic block. This fixes PR9500, rdar://9156159. llvm-svn: 128041
* Add support for Thumb interworking addresses for symbol offsets that get ↵Owen Anderson2011-03-211-0/+5
| | | | | | | | constant folded very early. This fixes SPASS with -integrated-as. <rdar://problem/9165399> llvm-svn: 128037
* Build the new RuntimeDyld library.Oscar Fuentes2011-03-211-0/+1
| | | | llvm-svn: 128035
* Library-ize the dyld components of llvm-rtdyld.Jim Grosbach2011-03-214-1/+346
| | | | | | | | | 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
* Simplify.Devang Patel2011-03-211-5/+4
| | | | llvm-svn: 128030
* Fix INT_MIN gotcha pointed out by Eli Friedman.Nick Lewycky2011-03-211-3/+4
| | | | llvm-svn: 128028
* Provide a means for CrashRecovery clients to determine if code is currently ↵Ted Kremenek2011-03-211-0/+9
| | | | | | running while crash recovery cleanups are being processed. llvm-svn: 128008
* Grammar-o.Eric Christopher2011-03-211-1/+1
| | | | llvm-svn: 128004
* More cleanups to the OptimizeEmptyGlobalCXXDtors GlobalOpt function.Anders Carlsson2011-03-211-15/+9
| | | | llvm-svn: 127997
* We need to pass the TargetMachine object to the InstPrinter if we are printingBill Wendling2011-03-2113-21/+39
| | | | | | | | | 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
* As suggested by Nick Lewycky, ignore debugging intrinsics when trying to ↵Anders Carlsson2011-03-211-0/+7
| | | | | | decide whether a destructor is empty or not. llvm-svn: 127985
* Fix commentsNick Lewycky2011-03-211-2/+2
| | | | llvm-svn: 127984
* This README entry was fixed recently.Eli Friedman2011-03-211-28/+0
| | | | llvm-svn: 127982
* Re-apply r127953 with fixes: eliminate empty return block if it has no ↵Evan Cheng2011-03-215-10/+149
| | | | | | predecessors; update dominator tree if cfg is modified. llvm-svn: 127981
* Don't try to eliminate invokes to __cxa_atexit.Anders Carlsson2011-03-201-0/+6
| | | | llvm-svn: 127976
* Don't segfault on mutual recursion, as pointed out by Frits.Anders Carlsson2011-03-201-4/+6
| | | | llvm-svn: 127975
* Address comments from Frits van Bommel.Anders Carlsson2011-03-201-7/+16
| | | | llvm-svn: 127974
* Process all dead defs after rematerializing during splitting.Jakob Stoklund Olesen2011-03-201-22/+15
| | | | llvm-svn: 127973
* Write the section table and the section data in the same order thatRafael Espindola2011-03-202-107/+225
| | | | | | | gun as does. This makes it a lot easier to compare the output of both as the addresses are now a lot closer. llvm-svn: 127972
* Add an optimization to GlobalOpt that eliminates calls to __cxa_atexit, if ↵Anders Carlsson2011-03-201-0/+101
| | | | | | the function passed is empty. llvm-svn: 127970
* Avoid initializing posix_spawn_file_actions_t if not used.Benjamin Kramer2011-03-201-7/+11
| | | | | | | - glibc falls back to fork+exec if a file actions object is present. - On BSDs this saves a malloc. llvm-svn: 127969
* Also eliminate redundant spills downstream of inserted reloads.Jakob Stoklund Olesen2011-03-201-9/+17
| | | | | | | This can happen when multiple sibling registers are spilled after live range splitting. llvm-svn: 127965
* Change an argument to a LiveInterval instead of a register number to save ↵Jakob Stoklund Olesen2011-03-201-13/+13
| | | | | | some redundant lookups. llvm-svn: 127964
* Replace a broken LiveInterval::MergeValueInAsValue() with something simpler.Jakob Stoklund Olesen2011-03-191-46/+5
| | | | llvm-svn: 127960
* Add debug output.Jakob Stoklund Olesen2011-03-192-0/+5
| | | | llvm-svn: 127959
* Revert r127953, "SimplifyCFG has stopped duplicating returns into predecessorsDaniel Dunbar2011-03-195-126/+4
| | | | | | to canonicalize IR", it broke a lot of things. llvm-svn: 127954
* SimplifyCFG has stopped duplicating returns into predecessors to canonicalize IREvan Cheng2011-03-195-4/+126
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Minor code re-structuring.Evan Cheng2011-03-191-1/+1
| | | | llvm-svn: 127952
* Add support for legalizing UINT_TO_FP of vectors on platforms which doNadav Rotem2011-03-192-1/+49
| | | | | | | | not have native support for this operation (such as X86). The legalized code uses two vector INT_TO_FP operations and is faster than scalarizing. llvm-svn: 127951
* Reapply 127939 since Daniel fixed the breakage. <rdar://problem/9012638>Stuart Hastings2011-03-193-9/+11
| | | | llvm-svn: 127944
* Revert 127939. <rdar://problem/9012638>Stuart Hastings2011-03-193-11/+9
| | | | llvm-svn: 127943
* Revise r126127 to address Daniel's comments. <rdar://problem/9012638>Stuart Hastings2011-03-193-9/+11
| | | | llvm-svn: 127939
* Fixed an assert by the ARM disassembler for LDRD_PRE/POST.Johnny Chen2011-03-191-3/+4
| | | | | | | | The relevant instruction table entries were changed sometime ago to no longer take <Rt2> as an operand. Modify ARMDisassemblerCore.cpp to accomodate the change and add a test case. llvm-svn: 127935
* Tweak CrashRecoveryContextCleanup to provide an easy method for clients to ↵Ted Kremenek2011-03-191-0/+1
| | | | | | select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant. llvm-svn: 127929
OpenPOWER on IntegriCloud