- Jun 16, 2009
-
-
Anton Korobeynikov authored
Dispatch C calling conv. to one of these conventions based on target triple and subtarget features. llvm-svn: 73530
-
Anton Korobeynikov authored
(this is the case when we have thumb vararg function with single callee-saved register, which is handled separately). llvm-svn: 73529
-
Douglas Gregor authored
llvm-svn: 73516
-
Owen Anderson authored
calls for convenience. llvm-svn: 73512
-
Chris Lattner authored
to ignore readonly calls, and factor it out of instcombine so that it can be used by other passes. Patch by Frits van Bommel! llvm-svn: 73506
-
Sanjiv Gupta authored
llvm-svn: 73491
-
Sanjiv Gupta authored
llvm-svn: 73483
-
Sanjiv Gupta authored
llvm-svn: 73481
-
Sanjiv Gupta authored
llvm-svn: 73480
-
Evan Cheng authored
llvm-svn: 73479
-
Evan Cheng authored
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead. TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block. llvm-svn: 73478
-
Eli Friedman authored
support for x86, and UMULO/SMULO for many architectures, including PPC (PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's not bad. llvm-svn: 73477
-
Eli Friedman authored
llvm-svn: 73476
-
Chris Lattner authored
llvm-svn: 73472
-
Chris Lattner authored
llvm-svn: 73471
-
Chris Lattner authored
The problem was that BitcodeReader::materializeModule would read functions from the bc file in densemap pointer key order (doubly non-deterministic!), which would cause the use-def chains to be set up for globals in non-determinstic order. Non-determinstic use/def chains can cause nondeterminism in many places down-stream. Many thanks to Julien Lerouge for putting together the pass in the PR that shows the issue! llvm-svn: 73470
-
Bill Wendling authored
llvm-svn: 73468
-
Bill Wendling authored
comes after the DW_CFA_def_cfa_register, because the CFA is really ESP from the start of the function and only gets an offset when the "subl $xxx,%esp" instruction happens, not the other way around. And reapply r72898: The DWARF unwind info was incorrect. While compiling with `-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a lot of function, and then they would be `0'. The linker (at least on Darwin) needs to encode the stack size. In some cases, the stack size is too large to directly encode. So the linker checks to see if there is a "subl $xxx,%esp" instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If so, the compact encoding records the offset in the function to where the stack size is embedded. But because the `DW_CFA_advance_loc' instructions are missing, it looks before the function and dies. So, instead of emitting the EH debug label before the stack adjustment operations, emit it afterwards, right before the frame move stuff. llvm-svn: 73465
-
Bill Wendling authored
llvm-svn: 73464
-
Devang Patel authored
llvm-svn: 73457
-
Dan Gohman authored
llvm-svn: 73451
-
Owen Anderson authored
Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing. llvm-svn: 73438
-
Dan Gohman authored
unsupported inline asm construct, rather than verifying a code invariant. llvm-svn: 73435
-
Evan Cheng authored
llvm-svn: 73434
-
Dan Gohman authored
llvm-svn: 73433
-
Dan Gohman authored
failures. To support this, add some utility functions to Type to help support vector/scalar-independent code. Change ConstantInt::get and ConstantFP::get to support vector types, and add an overload to ConstantInt::get that uses a static IntegerType type, for convenience. Introduce a new getConstant method for ScalarEvolution, to simplify common use cases. llvm-svn: 73431
-
- Jun 15, 2009
-
-
Dan Gohman authored
llvm-svn: 73429
-
Anton Korobeynikov authored
llvm-svn: 73428
-
Devang Patel authored
llvm-svn: 73426
-
Evan Cheng authored
llvm-svn: 73423
-
Evan Cheng authored
llvm-svn: 73422
-
Bill Wendling authored
llvm-svn: 73417
-
Dale Johannesen authored
problem addressed in 31284, but the patch there only addressed the case where an invoke is the first thing in a block. llvm-svn: 73416
-
Evan Cheng authored
llvm-svn: 73413
-
Owen Anderson authored
llvm-svn: 73412
-
Bill Wendling authored
that push immediate operands of 1, 2, and 4 bytes (extended to the native register size in each case). The assembly mnemonics are "pushl" and "pushq." One such instruction appears at the beginning of the "start" function , so this is essential for accurate disassembly when unwinding." Patch by Sean Callanan! llvm-svn: 73407
-
Evan Cheng authored
llvm-svn: 73406
-
Dan Gohman authored
llvm-svn: 73401
-
Dan Gohman authored
llvm-svn: 73398
-
Dan Gohman authored
specific one. The GNU one is chosen when _GNU_SOURCE is defined. g++ always defines _GNU_SOURCE on linux platforms because glibc's headers won't compile in C++ mode without it. The GNU strerror_r doesn't always modify the buffer which causes empty error messages on linux. This patch changes MakeErrMsg to use the return value of strerror_r to get the string instead of assuming the buffer will be modified, on GLIBC. Patch by Benjamin Kramer! llvm-svn: 73396
-