- Jun 16, 2009
-
-
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
-
Arnold Schwaighofer authored
incomming chain of the RETURN node. The incomming chain must be the outgoing chain of the CALL node. This causes the backend to identify tail calls that are not tail calls. This patch fixes this. llvm-svn: 73387
-
Evan Cheng authored
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent. - Allow targets to specify alternative register allocation orders based on allocation hint. Part 2. - Use the register allocation hint system to implement more aggressive load / store multiple formation. - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g. v1025 = LDR v1024, 0 v1026 = LDR v1024, 0 => v1025,v1026 = LDRD v1024, 0 If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair. - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions. This is work in progress, not yet enabled. llvm-svn: 73381
-
Chris Lattner authored
Patch by Benjamin Kramer! llvm-svn: 73379
-
Chris Lattner authored
llvm-svn: 73373
-
Chris Lattner authored
llvm-svn: 73372
-
Chris Lattner authored
absolute or not, based on a patch by Gregory Curfman! llvm-svn: 73368
-
Chris Lattner authored
llvm-svn: 73366
-
Dan Gohman authored
llvm-svn: 73362
-
Dan Gohman authored
they contain multiplications of constants with add operations. This helps simplify several kinds of things; in particular it helps simplify expressions like ((-1 * (%a + %b)) + %a) to %b, as expressions like this often come up in loop trip count computations. llvm-svn: 73361
-
Dan Gohman authored
the potentially expensive erase. llvm-svn: 73359
-
Dan Gohman authored
even though the order doesn't matter at the top level of an expression, it does matter when the constant is a subexpression of an n-ary expression, because n-ary expressions are sorted lexicographically. llvm-svn: 73358
-
Dan Gohman authored
SmallVector instead of std::vector. llvm-svn: 73357
-
Dan Gohman authored
llvm-svn: 73355
-
- Jun 14, 2009
-
-
Evan Cheng authored
Move register allocation preference (or hint) from LiveInterval to MachineRegisterInfo. This allows more passes to set them. llvm-svn: 73346
-
Torok Edwin authored
llvm-svn: 73342
-
Owen Anderson authored
is that, for functions whose bodies are entirely guarded by an if-statement, it can be profitable to pull the test out of the callee and into the caller. This code has had some cursory testing, but still has a number of known issues on the LLVM test suite. llvm-svn: 73338
-
Bruno Cardoso Lopes authored
Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray llvm-svn: 73333
-
- Jun 13, 2009
-
-
Nick Lewycky authored
pointer. This fixes kimwitu++. Pointed out by Frits van Bommel on review! llvm-svn: 73299
-
Sanjiv Gupta authored
The subprogram descriptor for a function may be missing (llvm-ld linking two static functions with same name), so pick up the compilation unit for the function from the first valid debug loc of its instructions. This patch also emits debug info for structure (aggregate types in general) types. llvm-svn: 73295
-
Dan Gohman authored
induction variable when the addrec to be expanded does not require a wider type. This eliminates the need for IndVarSimplify to micro-manage SCEV expansions, because SCEVExpander now automatically expands them in the form that IndVarSimplify considers to be canonical. (LSR still micro-manages its SCEV expansions, because it's optimizing for the target, rather than for other optimizations.) Also, this uses the new getAnyExtendExpr, which has more clever expression simplification logic than the IndVarSimplify code it replaces, and this cleans up some ugly expansions in code such as the included masked-iv.ll testcase. llvm-svn: 73294
-