- Feb 21, 2009
-
-
Evan Cheng authored
If two-address def is dead and the instruction does not define other registers, and it doesn't produce side effects, just delete the instruction. llvm-svn: 65218
-
Evan Cheng authored
Teach LSR sink to sink the immediate portion of the common expression back into uses if they fit in address modes of all the uses. llvm-svn: 65215
-
Bill Wendling authored
llvm-svn: 65213
-
Bill Wendling authored
llvm-svn: 65211
-
Chris Lattner authored
as legality. Make load sinking and gep sinking more careful: we only do it when it won't pessimize loads from the stack. This has the added benefit of not producing code that is unanalyzable to SROA. llvm-svn: 65209
-
Bill Wendling authored
llvm-svn: 65207
-
Bill Wendling authored
prologue/epilogue. llvm-svn: 65206
-
Dan Gohman authored
that checks whether it's safe to transform a store of a bitcast value into a store of the original value. llvm-svn: 65201
-
- Feb 20, 2009
-
-
Evan Cheng authored
addresses, part 1. This fixes an obvious logic bug. Previously if the only in-loop use is a PHI, it would return AllUsesAreAddresses as true. llvm-svn: 65178
-
Dan Gohman authored
llvm-svn: 65167
-
Dan Gohman authored
llvm-svn: 65159
-
Dan Gohman authored
llvm-svn: 65157
-
Evan Cheng authored
llvm-svn: 65152
-
Bill Wendling authored
- Correct comment. - Whitespace changes. llvm-svn: 65149
-
Dan Gohman authored
llvm-svn: 65147
-
Torok Edwin authored
llvm-svn: 65137
-
Evan Cheng authored
Factor address mode matcher out of codegen prepare to make it available to other passes, e.g. loop strength reduction. llvm-svn: 65134
-
Zhou Sheng authored
Will re-think about this according to Chris's comments. llvm-svn: 65126
-
Zhou Sheng authored
Currently this pass will delete the variable declaration info, and keep the line number info. But the kept line number info is not updated, and some is redundant or not correct, this patch just updates those info. llvm-svn: 65123
-
Owen Anderson authored
llvm-svn: 65121
-
Owen Anderson authored
Add a quick pass to the stack slot colorer to eliminate some trivially redundant spills after coloring. Ideally these would never get created in the first place, but until we enhance the spiller to have a more global picture of what's happening, this is necessary for code quality in some circumstances. llvm-svn: 65120
-
Dan Gohman authored
reduction of address calculations down to basic pointer arithmetic. This is currently off by default, as it needs a few other features before it becomes generally useful. And even when enabled, full strength reduction is only performed when it doesn't increase register pressure, and when several other conditions are true. This also factors out a bunch of exisiting LSR code out of StrengthReduceStridedIVUsers into separate functions, and tidies up IV insertion. This actually decreases register pressure even in non-superhero mode. The change in iv-users-in-other-loops.ll is an example of this; there are two more adds because there are two fewer leas, and there is less spilling. llvm-svn: 65108
-
Bill Wendling authored
llvm-svn: 65092
-
- Feb 19, 2009
-
-
Bill Wendling authored
llvm-svn: 65068
-
Bill Wendling authored
llvm-svn: 65067
-
Bill Wendling authored
llvm-svn: 65065
-
Bill Wendling authored
"optimize-for-size" mode. llvm-svn: 65064
-
Dan Gohman authored
since the latter just passes a null reference when debugging is not enabled. llvm-svn: 65060
-
Dan Gohman authored
llvm-svn: 65057
-
Chris Lattner authored
symlink. We really want the ultimate executable being run, not the symlink. This lets clang find its headers when invoked through a symlink. rdar://6602012 llvm-svn: 65017
-
Dan Gohman authored
of arguments. llvm-svn: 64999
-
Dan Gohman authored
being called with the lock released, and this fixes a race condition in the JIT as used by lli. llvm-svn: 64997
-
Bill Wendling authored
everyone. llvm-svn: 64978
-
- Feb 18, 2009
-
-
Chris Lattner authored
llvm-svn: 64953
-
Duncan Sands authored
here. Since we only do the transform if there is one use, strip off any such users in the hope of making the transform fire more often. llvm-svn: 64926
-
Devang Patel authored
llvm-svn: 64920
-
Dan Gohman authored
trip count value when the original loop iteration condition is signed and the canonical induction variable won't undergo signed overflow. This isn't required for correctness; it just preserves more information about original loop iteration values. Add a getTruncateOrSignExtend method to ScalarEvolution, following getTruncateOrZeroExtend. llvm-svn: 64918
-
Dan Gohman authored
llvm-svn: 64917
-
Dan Gohman authored
llvm-svn: 64915
-
Nate Begeman authored
that has not been JIT'd yet, the callee is put on a list of pending functions to JIT. The call is directed through a stub, which is updated with the address of the function after it has been JIT'd. A new interface for allocating and updating empty stubs is provided. Add support for removing the ModuleProvider the JIT was created with, which would otherwise invalidate the JIT's PassManager, which is initialized with the ModuleProvider's Module. Add support under a new ExecutionEngine flag for emitting the infomration necessary to update Function and GlobalVariable stubs after JITing them, by recording the address of the stub and the name of the GlobalValue. This allows code to be copied from one address space to another, where libraries may live at different virtual addresses, and have the stubs updated with their new correct target addresses. llvm-svn: 64906
-