- Jun 04, 2007
-
-
Evan Cheng authored
llvm-svn: 37408
-
- Jun 02, 2007
-
-
Duncan Sands authored
(landing pad) when an exception unwinds through the call. This doesn't quite match the way the dwarf unwinder works: by default it only jumps to the landing pad if the catch or filter specification matches, and otherwise it keeps on unwinding. There are two ways of specifying to the unwinder that it should "always" (more on why there are quotes here later) jump to the landing pad: follow the specification by a 0 typeid, or follow it by the typeid for the NULL typeinfo. GCC does the first, and this patch makes LLVM do the same as gcc. However there is a problem: the unwinder performs optimizations based on C++ semantics (it only expects destructors to be run if the 0 typeid fires - known as "cleanups"), meaning it assumes that no exceptions will be raised and that the raised exception will be reraised at the end of the cleanup code. So if someone writes their own LLVM code using the exception intrinsics they will get a nasty surprise if they don't follow these rules. The other possibility of using the typeid corresponding to NULL (catch-all) causes the unwinder to make no assumptions, so this is probably what we should use in the long-run. However since we are still having trouble getting exception handling working properly, for the moment it seems best to closely imitate GCC. llvm-svn: 37399
-
Duncan Sands authored
simplifies the code in DwarfWriter, allows for multiple filters and makes it trivial to specify filters accompanied by cleanups or catch-all specifications (see next patch). What a deal! Patch blessed by Anton. llvm-svn: 37398
-
Zhou Sheng authored
llvm-svn: 37397
-
Dale Johannesen authored
llvm-svn: 37394
-
Dale Johannesen authored
llvm-svn: 37393
-
Dale Johannesen authored
See test/CodeGen/X86/test-pic-jtbl.ll for a case where it works well; shaves another 10K off our favorite benchmark. I was hesitant about this because of compile speed, but seems to do OK on a bootstrap. llvm-svn: 37392
-
- Jun 01, 2007
-
-
Evan Cheng authored
llvm-svn: 37387
-
Duncan Sands authored
as a null i8 pointer not as a 0 i32. llvm-svn: 37383
-
Evan Cheng authored
Ifcvt triangle: don't ifcvt 'true' BB if it has other predecessors; don't merge 'false' BB if it has other predecessors. llvm-svn: 37382
-
Evan Cheng authored
Remove a bogus check. Even terminators in a ifcvt need to be predicated. Unconditional branches can usually be converted to conditional ones. llvm-svn: 37380
-
Evan Cheng authored
llvm-svn: 37379
-
- May 31, 2007
-
-
Dale Johannesen authored
Do not remove empty landing pads (EH table needs to be updated) llvm-svn: 37375
-
Evan Cheng authored
llvm-svn: 37374
-
Chris Lattner authored
smaller than the preferred alignment, but so that the target can actually specify a minimum alignment if needed. This fixes some objc protocol failures Devang tracked down. llvm-svn: 37373
-
Lauro Ramos Venancio authored
When a function has FP, the register scavenging spill slot offset already was calculated. llvm-svn: 37371
-
- May 30, 2007
-
-
Evan Cheng authored
llvm-svn: 37365
-
Chris Lattner authored
llvm-svn: 37362
-
Dale Johannesen authored
llvm-svn: 37355
-
Dale Johannesen authored
matter until my last change). Reenable tail merging by default. llvm-svn: 37354
-
Evan Cheng authored
llvm-svn: 37353
-
Evan Cheng authored
If there is an empty block between a source and its successor block, it still requires a unconditional branch. llvm-svn: 37344
-
- May 29, 2007
-
-
Evan Cheng authored
llvm-svn: 37341
-
- May 26, 2007
-
-
Zhou Sheng authored
llvm-svn: 37331
-
- May 25, 2007
-
-
Chris Lattner authored
llvm-svn: 37330
-
Evan Cheng authored
llvm-svn: 37328
-
- May 24, 2007
-
-
Dale Johannesen authored
only one successor. llvm-svn: 37324
-
Dale Johannesen authored
Temporarily, this breaks CodeGen/Generic/2006-02-12-InsertLibraryCall.ll by exposing an unrelated latent problem; working on that. llvm-svn: 37323
-
Dan Gohman authored
llvm-svn: 37321
-
Dan Gohman authored
llvm-svn: 37320
-
Evan Cheng authored
Fix a typo that caused combiner to create mal-formed pre-indexed store where value store is the same as the base pointer. llvm-svn: 37318
-
- May 23, 2007
-
-
Dale Johannesen authored
When considering blocks with more than 2 predecessors, merge the block with the largest number of matching insns, rather than the first block found. Considering that 1 matching insn is enough to show a win for candidates that already end with a branch. llvm-svn: 37315
-
Anton Korobeynikov authored
Mark all calls as "could throw", when exceptions are enabled. Emit necessary LP info too. This fixes PR1439 llvm-svn: 37311
-
Chris Lattner authored
llvm-svn: 37310
-
Evan Cheng authored
llvm-svn: 37309
-
- May 22, 2007
-
-
Dale Johannesen authored
llvm-svn: 37289
-
Owen Anderson authored
llvm-svn: 37288
-
Dale Johannesen authored
for a target-dependent default with a command-line override; this way should be generally usable. llvm-svn: 37285
-
Evan Cheng authored
llvm-svn: 37270
-
- May 21, 2007
-
-
Duncan Sands authored
it occurs for multiple landing pads. llvm-svn: 37267
-