- Mar 22, 2011
-
-
Rafael Espindola authored
llvm-svn: 128098
-
Jim Grosbach authored
llvm-svn: 128094
-
Ted Kremenek authored
Properly initialize all fields in CrashReporterCleanupContext. This caused the buildbot failure earlier. llvm-svn: 128071
-
Ted Kremenek authored
Rework CrashRecoveryContextCleanup to provide a simpler way to create cleanup objects, and provide a new cleanup for decrementing reference counts of objects with intrusive reference counts. llvm-svn: 128055
-
Ted Kremenek authored
llvm-svn: 128054
-
- Mar 21, 2011
-
-
Jim Grosbach authored
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
-
Ted Kremenek authored
Provide a means for CrashRecovery clients to determine if code is currently running while crash recovery cleanups are being processed. llvm-svn: 128008
-
Ted Kremenek authored
llvm-svn: 128007
-
Eric Christopher authored
llvm-svn: 128005
-
Jay Foad authored
llvm-svn: 128002
-
Bill Wendling authored
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
-
Evan Cheng authored
Re-apply r127953 with fixes: eliminate empty return block if it has no predecessors; update dominator tree if cfg is modified. llvm-svn: 127981
-
- Mar 20, 2011
-
-
Argyrios Kyrtzidis authored
If a class inherits from RefCountedBaseVPTR allow all its subclasses to be used with IntrusiveRefCntPtr. llvm-svn: 127966
-
- Mar 19, 2011
-
-
Daniel Dunbar authored
to canonicalize IR", it broke a lot of things. llvm-svn: 127954
-
Evan Cheng authored
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
-
-
-
-
Ted Kremenek authored
Tweak CrashRecoveryContextCleanup to provide an easy method for clients to select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant. llvm-svn: 127929
-
Devang Patel authored
If an AllocaInst referred by DbgDeclareInst is used by a LoadInst then the LoadInst should also get a corresponding llvm.dbg.value intrinsic. llvm-svn: 127924
-
- Mar 18, 2011
-
-
Jim Grosbach authored
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
-
Andrew Trick authored
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
-
Jim Grosbach authored
llvm-svn: 127883
-
Ted Kremenek authored
Tweak CrashRecoveryContextCleanup::createCleanup() to use the 'delete' cleanup as opposed to the 'destructor' cleanup (reclaims more memory). llvm-svn: 127865
-
Ted Kremenek authored
Add new CrashRecoveryContextCleanup subclass: CrashRecoveryContextDeleteCleanup. This deletes the object, not just calls its destructor. llvm-svn: 127855
-
Ted Kremenek authored
Augment CrashRecoveryContext to have registered "cleanup" objects that can be used to release resources during a crash. llvm-svn: 127849
-
Andrew Trick authored
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
-
- Mar 17, 2011
-
-
Rafael Espindola authored
instead of copying. llvm-svn: 127835
-
Devang Patel authored
This is done by lowering dbg.declare intrinsic into dbg.value intrinsic. Radar 9143931. llvm-svn: 127834
-
Devang Patel authored
llvm-svn: 127832
-
Benjamin Kramer authored
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number. This will come in handy soon. llvm-svn: 127828
-
Jakob Stoklund Olesen authored
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
-
Richard Osborne authored
llvm-svn: 127821
-
Cameron Zwarich authored
llvm-svn: 127809
-
Cameron Zwarich authored
llvm-svn: 127807
-
Rafael Espindola authored
of an file. llvm-svn: 127781
-
Jakob Stoklund Olesen authored
llvm-svn: 127779
-
- Mar 16, 2011
-
-
Cameron Zwarich authored
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
-
Richard Osborne authored
llvm-svn: 127761
-
Richard Osborne authored
can event. llvm-svn: 127741
-