- Aug 26, 2010
-
-
Dan Gohman authored
fix: add a flag to MapValue and friends which indicates whether any module-level mappings are being made. In the common case of inlining, no module-level mappings are needed, so MapValue doesn't need to examine non-function-local metadata, which can be very expensive in the case of a large module with really deep metadata (e.g. a large C++ program compiled with -g). This flag is a little awkward; perhaps eventually it can be moved into the ClonedCodeInfo class. llvm-svn: 112190
-
Daniel Dunbar authored
except ...", it is causing *massive* performance regressions when building Clang with itself (-O3 -g). llvm-svn: 112158
-
Daniel Dunbar authored
individual ...", which depends on r111922, which I am reverting. llvm-svn: 112157
-
Chris Lattner authored
llvm-svn: 112130
-
Dan Gohman authored
and was over-complicated, and replacing it with a simple implementation. llvm-svn: 112120
-
Chris Lattner authored
llvm-svn: 112104
-
- Aug 25, 2010
-
-
Dan Gohman authored
instructions, not when remapping modules. llvm-svn: 112091
-
Devang Patel authored
DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. llvm-svn: 112072
-
- Aug 24, 2010
-
-
Dan Gohman authored
which does the same thing. This eliminates redundant code and handles MDNodes better. MDNode linking still doesn't fully work yet though. llvm-svn: 111941
-
Owen Anderson authored
llvm-svn: 111923
-
Dan Gohman authored
that it avoids a lot of unnecessary cloning by avoiding remapping MDNode cycles when none of the nodes in the cycle actually need to be remapped. Also it uses the new temporary MDNode mechanism. llvm-svn: 111922
-
- Aug 23, 2010
-
-
Owen Anderson authored
llvm-svn: 111834
-
Owen Anderson authored
llvm-svn: 111816
-
Owen Anderson authored
Now that PassInfo and Pass::ID have been separated, move the rest of the passes over to the new registration API. llvm-svn: 111815
-
- Aug 20, 2010
-
-
Owen Anderson authored
llvm-svn: 111665
-
Owen Anderson authored
llvm-svn: 111571
-
Owen Anderson authored
When a set of bitmask operations, typically from a bitfield initialization, only modifies the low bytes of a value, we can narrow the store to only over-write the affected bytes. llvm-svn: 111568
-
- Aug 19, 2010
-
-
Owen Anderson authored
llvm-svn: 111551
-
Owen Anderson authored
llvm-svn: 111543
-
Dan Gohman authored
of the two. llvm-svn: 111495
-
- Aug 18, 2010
-
-
Owen Anderson authored
llvm-svn: 111382
-
Chris Lattner authored
from the LHS should disable reconsidering that pred on the RHS. However, knowing something about the pred on the RHS shouldn't disable subsequent additions on the RHS from happening. llvm-svn: 111349
-
Chris Lattner authored
llvm-svn: 111348
-
Chris Lattner authored
llvm-svn: 111344
-
Chris Lattner authored
llvm-svn: 111342
-
Eric Christopher authored
vector heavy code. I'll re-enable when we've tracked down the problem. llvm-svn: 111318
-
- Aug 17, 2010
-
-
Dan Gohman authored
loop, making the resulting loop significantly less ugly. Also, zap its trivial PHI nodes, since it's easy. llvm-svn: 111255
-
Dan Gohman authored
what it does manually. llvm-svn: 111248
-
Evan Cheng authored
Add an option to disable codegen prepare critical edge splitting. In theory, PHI elimination is already doing all (most?) of the splitting needed. But machine-licm and machine-sink seem to miss some important optimizations when splitting is disabled. llvm-svn: 111224
-
- Aug 16, 2010
-
-
Dan Gohman authored
uninteresting, just put all the operands on one list and make GenerateReassociations make the decision about what's interesting. This is simpler, and it avoids an extra ScalarEvolution::getAddExpr call. llvm-svn: 111133
-
Dan Gohman authored
This isn't necessary, because ScalarEvolution sorts them anyway, but it's tidier this way. llvm-svn: 111132
-
Dan Gohman authored
actually use ScalarEvolution. llvm-svn: 111124
-
Dan Gohman authored
indirectbr destination lists. llvm-svn: 111122
-
- Aug 14, 2010
-
-
Dan Gohman authored
llvm-svn: 111061
-
Dan Gohman authored
- Eliminate redundant successors. - Convert an indirectbr with one successor into a direct branch. Also, generalize SimplifyCFG to be able to be run on a function entry block. It knows quite a few simplifications which are applicable to the entry block, and it only needs a few checks to avoid trouble with the entry block. llvm-svn: 111060
-
- Aug 13, 2010
-
-
Dan Gohman authored
ScalarEvolution::getAddExpr, which can be pretty expensive, when nothing has changed, which is pretty common. llvm-svn: 111042
-
Nate Begeman authored
llvm-svn: 110987
-
Chris Lattner authored
before it rewrites the code, we need to use that in the post-rewrite pass. llvm-svn: 110962
-
- Aug 12, 2010
-
-
Eric Christopher authored
in an external testsuite. llvm-svn: 110905
-
- Aug 10, 2010
-
-
Nate Begeman authored
patterns generated by clang for transpose of a matrix in generic vectors. This is made of two parts: 1) Propagating vector extracts of hi/lo half into their users 2) Recognizing an insertion of even elements followed by the odd elements as an unpack. Testcase to come, but this shrinks the # of shuffle instructions generated on x86 from ~40 to the minimal 8. llvm-svn: 110734
-