- Apr 28, 2011
-
-
Rafael Espindola authored
llvm-svn: 130343
-
Rafael Espindola authored
give it a bit more responsibility. Also implement it for MachO. If hacked to use cfi, 32 bit MachO will produce .cfi_personality 155, L___gxx_personality_v0$non_lazy_ptr and 64 bit will produce .cfi_presonality ___gxx_personality_v0 The general idea is that .cfi_personality gets passed the final symbol. It is up to codegen to produce it if using indirect representation (like 32 bit MachO), but it is up to MC to decide which relocations to create. llvm-svn: 130341
-
Andrew Trick authored
Modified LinearFunctionTestReplace to push the condition on the dead list instead of eagerly deleting it. This can cause unnecessary IV rewrites, which should have no effect on codegen and will not be an issue once we stop generating canonical IVs. llvm-svn: 130340
-
Devang Patel authored
llvm-svn: 130339
-
Eli Friedman authored
Make the fast-isel code for literal 0.0 a bit shorter/faster, since 0.0 is common. rdar://problem/9303592 . llvm-svn: 130338
-
Eli Friedman authored
llvm-svn: 130337
-
- Apr 27, 2011
-
-
NAKAMURA Takumi authored
A few styles are brought from http://llvm.org/test-doxygen/api/api.css llvm-svn: 130333
-
Rafael Espindola authored
llvm-svn: 130331
-
Kevin Enderby authored
value is zero so it does not add a NULL expr operand. llvm-svn: 130330
-
Dan Gohman authored
llvm-svn: 130327
-
Devang Patel authored
llvm-svn: 130326
-
Evan Cheng authored
successors) and use inverse depth first search to traverse the BBs. However that doesn't work when the CFG has infinite loops. Simply do a linear traversal of all BBs work just fine. rdar://9344645 llvm-svn: 130324
-
Dan Gohman authored
only check arguments with pointer types. Update the documentation of IntrReadArgMem reflect this. While here, add support for TBAA tags on intrinsic calls. llvm-svn: 130317
-
Andrew Trick authored
llvm-svn: 130316
-
Devang Patel authored
Simplify cfg inserts a call to trap when unreachable code is detected. Assign DebugLoc to this new trap instruction. llvm-svn: 130315
-
Jakob Stoklund Olesen authored
We cannot rely on the <imp-def> operands added by LiveIntervals in all cases as demonstrated by the test case. llvm-svn: 130313
-
Rafael Espindola authored
non private symbol. This will be use for handling foo: .cfi_startproc ... On OS X where we have to create a foo.eh symbol. llvm-svn: 130305
-
Duncan Sands authored
effective in avoiding recomputation of LCSSA form; the widespread use of instsimplify (which looks through phi nodes) means it was not preserving LCSSA form anyway; and instcombine is no longer scheduled in the middle of the loop passes so this doesn't matter anymore. llvm-svn: 130301
-
Andrew Trick authored
llvm-svn: 130294
-
Nick Lewycky authored
C89 doesn't have an inline keyword. llvm-svn: 130279
-
Eli Friedman authored
length. (I'm planning to use this to implement byval.) llvm-svn: 130274
-
Rafael Espindola authored
step towards using .cfi_* on OS X. llvm-svn: 130273
-
Eli Friedman authored
rdar://problem/9303306 . llvm-svn: 130272
-
Andrew Trick authored
Fix for PR9633 [indvars] Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed. Added a type check in ScalarEvolution::computeSCEVAtScope to handle the case in which operands of an AddRecExpr in the current scope are folded. llvm-svn: 130271
-
Chris Lattner authored
an earlier load could be widened to encompass a later load. For example, if we see: X = load i8* P, align 4 Y = load i8* (P+3), align 1 and we have a 32-bit native integer type, we can widen the former load to i32 which then makes the second load redundant. GVN can't actually do anything with this load/load relation yet, so this isn't testable, but it is the next step to resolving PR6627, and a fairly general class of "merge neighboring loads" missed optimizations. llvm-svn: 130250
-
Jakob Stoklund Olesen authored
The number of blocks covered by a live range must be strictly decreasing when splitting, otherwise we can't allow repeated splitting. llvm-svn: 130249
-
- Apr 26, 2011
-
-
Chris Lattner authored
llvm-svn: 130248
-
Chris Lattner authored
work-in-progress that is not progressing, and it has issues. llvm-svn: 130247
-
Evan Cheng authored
more callee-saved registers and introduce copies. Only allows it if scheduling a node above calls would end up lessen register pressure. Call operands also has added ABI restrictions for register allocation, so be extra careful with hoisting them above calls. rdar://9329627 llvm-svn: 130245
-
Evan Cheng authored
This test should be in MC. It breaks with changes to scheduling / register allocation so it's being removed. llvm-svn: 130243
-
Chris Lattner authored
1. Only run the early (in the module pass pipe) instcombine/simplifycfg if the "unit at a time" passes they are cleaning up after runs. 2. Move the "clean up after the unroller" pass to the very end of the function-level pass pipeline. Loop unroll uses instsimplify now, so it doesn't create a ton of trash. Moving instcombine later allows it to clean up after opportunities are exposed by GVN, DSE, etc. 3. Introduce some phase ordering tests for things that are specifically intended to be simplified by the full optimizer as a whole. This resolves PR2338, and is progress towards PR6627, which will be generating code that looks similar to test2. llvm-svn: 130241
-
Chris Lattner authored
when X has multiple uses. This is useful for exposing secondary optimizations, but the X86 backend isn't ready for this when X has a single use. For example, this can disable load folding. This is inching towards resolving PR6627. llvm-svn: 130238
-
Chris Lattner authored
llvm-svn: 130237
-
Chris Lattner authored
predicate that matches if the subexpr has a single use. llvm-svn: 130235
-
Jim Grosbach authored
rdar://9326019 llvm-svn: 130234
-
Rafael Espindola authored
llvm-svn: 130232
-
Devang Patel authored
llvm-svn: 130231
-
Jakob Stoklund Olesen authored
This has two effects: 1. We never inflate to a larger register class than what the sub-target can handle. 2. Completely unconstrained virtual registers get the largest possible register class. llvm-svn: 130229
-
Jakob Stoklund Olesen authored
The hook will be used by the register allocator when recomputing register classes after removing constraints. Thumb1 code doesn't allow anything larger than tGPR, and x86 needs to ensure that the spill size doesn't change. llvm-svn: 130228
-
Benjamin Kramer authored
llvm-svn: 130226
-