- Aug 27, 2007
-
-
Duncan Sands authored
gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). llvm-svn: 41484
-
Dan Gohman authored
llvm-svn: 41482
-
Rafael Espindola authored
Coping 100MB array (after a warmup) shows that glibc 2.6.1 implementation on x86-64 (core 2) is 30% faster (from 0.270917s to 0.188079s) llvm-svn: 41479
-
- Aug 26, 2007
-
-
Anton Korobeynikov authored
Don't promote volatile loads/stores. This is needed (for example) to handle setjmp/longjmp properly. This fixes PR1520. llvm-svn: 41461
-
Owen Anderson authored
llvm-svn: 41456
-
Dale Johannesen authored
llvm-svn: 41409
-
Dale Johannesen authored
over uses in DAGCombiner. Fix interfaces to work with APFloats. llvm-svn: 41407
-
- Aug 25, 2007
-
-
Devang Patel authored
Move exit condition and exit branch from exiting block into loop header and dominator info. This avoid execution of dead iteration. Loop is already filter in the beginning such that this change is safe. llvm-svn: 41394
-
Devang Patel authored
llvm-svn: 41389
-
Chris Lattner authored
know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll llvm-svn: 41388
-
Devang Patel authored
While calculating upper loop bound for first loop and lower loop bound for second loop, take care of edge cases. llvm-svn: 41387
-
Chris Lattner authored
llvm-svn: 41386
-
Bill Wendling authored
.set Lset0,___gxx_personality_v0-. .long Lset0 on some targets. Make it so! llvm-svn: 41385
-
Chris Lattner authored
changing the interface to allow for future changes. llvm-svn: 41384
-
Dale Johannesen authored
This means backing out the preceding change to Constants.cpp, alas. llvm-svn: 41378
-
- Aug 24, 2007
-
-
Dale Johannesen authored
llvm-svn: 41372
-
Chris Lattner authored
This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst both have an out-of-line virtual method to home the class. llvm-svn: 41371
-
Devang Patel authored
Fix regression that I caused yesterday night while adding logic to select appropriate split condition branch. llvm-svn: 41365
-
Chris Lattner authored
llvm-svn: 41360
-
Chris Lattner authored
llvm-svn: 41359
-
Devang Patel authored
condition predicate is GT or GE then execute false branch first. llvm-svn: 41358
-
Devang Patel authored
llvm-svn: 41357
-
Devang Patel authored
llvm-svn: 41356
-
Devang Patel authored
llvm-svn: 41354
-
Dale Johannesen authored
llvm-svn: 41353
-
Chris Lattner authored
llvm-svn: 41352
-
Dale Johannesen authored
Interface to rest of the compiler unchanged, as yet. llvm-svn: 41348
-
- Aug 23, 2007
-
-
Chris Lattner authored
llvm-svn: 41319
-
Chris Lattner authored
llvm-svn: 41318
-
Anton Korobeynikov authored
llvm-svn: 41316
-
Chris Lattner authored
Add an APSInt::toString() method. llvm-svn: 41309
-
- Aug 22, 2007
-
-
Devang Patel authored
llvm-svn: 41295
-
Devang Patel authored
llvm-svn: 41292
-
Devang Patel authored
"True Loop" and "False Loop" naming terminology to refer two loops after loop cloning is confusing. Instead just use A_Loop and B_Loop. llvm-svn: 41287
-
Andrew Lenharth authored
llvm-svn: 41286
-
Bill Wendling authored
llvm-svn: 41284
-
Devang Patel authored
llvm-svn: 41282
-
Devang Patel authored
Starting value of second loop's induction variable can not be lower then starting value of original loop's induction variable. llvm-svn: 41280
-
- Aug 21, 2007
-
-
Devang Patel authored
llvm-svn: 41250
-
Devang Patel authored
llvm-svn: 41246
-