- Nov 21, 2011
-
-
Craig Topper authored
llvm-svn: 145027
-
Craig Topper authored
llvm-svn: 145026
-
Joe Abbey authored
llvm-svn: 145025
-
Craig Topper authored
Make LowerSIGN_EXTEND_INREG split 256-bit vectors when AVX1 is enabled and use AVX2 shifts when AVX2 is enabled. llvm-svn: 145022
-
Peter Collingbourne authored
llvm-svn: 145021
-
Peter Collingbourne authored
llvm-svn: 145020
-
Peter Collingbourne authored
generate any reasonable depfile if a header is missing. llvm-svn: 145019
-
Peter Collingbourne authored
output files that are valid regardless of whether the compilation succeeded or failed (but not if we crash). Add depfiles to the failure result file list. llvm-svn: 145018
-
Peter Collingbourne authored
This saves us from re-creating the symlink on every build even if we didn't rebuild clang. llvm-svn: 145017
-
- Nov 20, 2011
-
-
Benjamin Kramer authored
Fixes PR4777. llvm-svn: 145015
-
Nick Lewycky authored
llvm-svn: 145014
-
Nick Lewycky authored
Suggested in code review by Eli. That code in InstCombine looks kinda suspicious. llvm-svn: 145013
-
Douglas Gregor authored
from Jason Haslam! llvm-svn: 145012
-
NAKAMURA Takumi authored
llvm-svn: 145011
-
Chandler Carruth authored
properly account for the *global* probability of the edge being taken. This manifested as a very large number of unconditional branches to blocks being merged against the CFG even though they weren't particularly hot within the CFG. The fix is to check whether the edge being merged is both locally hot relative to other successors for the source block, and globally hot compared to other (unmerged) predecessors of the destination block. This introduces a new crasher on GCC single-source, but it's currently behind a flag, and Ben has offered to work on the reduction. =] llvm-svn: 145010
-
Chandler Carruth authored
llvm-svn: 145009
-
Benjamin Kramer authored
llvm-svn: 145008
-
Benjamin Kramer authored
setFlags doesn't modify its arguments. llvm-svn: 145007
-
Chandler Carruth authored
is actually being tested. Also add some FileCheck goodness to much more carefully ensure that the result is the desired result. Before this test would only have failed through an assert failure if the underlying fix were reverted. Also, add some weight metadata and a comment explaining exactly what is going on to a trick section of the test case. Originally, we were getting very unlucky and trying to form a block chain that isn't actually profitable. I'm working on a fix to avoid forming these unprofitable chains, and that would also have masked any failure from this test case. The easy solution is to add some metadata that makes it *really* profitable to form the bad chain here. llvm-svn: 145006
-
Craig Topper authored
Add code for lowering v32i8 shifts by a splat to AVX2 immediate shift instructions. Remove 256-bit splat handling from LowerShift as it was already handled by PerformShiftCombine. llvm-svn: 145005
-
- Nov 19, 2011
-
-
Craig Topper authored
llvm-svn: 145004
-
Craig Topper authored
Remove some of the special classes that worked around an old tablegen limitation of not being able to remove redundant bitconverts from patterns. llvm-svn: 145003
-
Douglas Gregor authored
llvm-svn: 145002
-
Douglas Gregor authored
llvm-svn: 145001
-
Douglas Gregor authored
llvm-svn: 145000
-
Craig Topper authored
llvm-svn: 144999
-
Abramo Bagnara authored
llvm-svn: 144995
-
Chandler Carruth authored
formation phase and into the initial walk of the basic blocks. We essentially pre-merge all blocks where unanalyzable fallthrough exists, as we won't be able to update the terminators effectively after any reorderings. This is quite a bit more principled as there may be CFGs where the second half of the unanalyzable pair has some analyzable predecessor that gets placed first. Then it may get placed next, implicitly breaking the unanalyzable branch even though we never even looked at the part that isn't analyzable. I've included a test case that triggers this (thanks Benjamin yet again!), and I'm hoping to synthesize some more general ones as I dig into related issues. Also, to make this new scheme work we have to be able to handle branches into the middle of a chain, so add this check. We always fallback on the incoming ordering. Finally, this starts to really underscore a known limitation of the current implementation -- we don't consider broken predecessors when merging successors. This can caused major missed opportunities, and is something I'm planning on looking at next (modulo more bug reports). llvm-svn: 144994
-
Benjamin Kramer authored
- With the current implementation of sys::Program this always printed "2". - The command execution code will output the right number anyway (including the signal name). llvm-svn: 144993
-
Douglas Gregor authored
llvm-svn: 144992
-
Douglas Gregor authored
constructors go below public member functions? llvm-svn: 144991
-
Craig Topper authored
llvm-svn: 144990
-
Craig Topper authored
Synthesize SSSE3/AVX 128-bit horizontal integer add/sub instructions from add/sub of appropriate shuffle vectors. llvm-svn: 144989
-
Craig Topper authored
llvm-svn: 144988
-
Craig Topper authored
llvm-svn: 144987
-
Craig Topper authored
llvm-svn: 144986
-
Craig Topper authored
llvm-svn: 144985
-
Sean Callanan authored
several patches. These patches fix a problem where templated types were not being completed the first time they were used, and fix a variety of minor issues I discovered while fixing that problem. One of the previous local patches was resolved in the most recent Clang, so I removed it. The others will be removed in due course. llvm-svn: 144984
-
Greg Clayton authored
1 - the DIE collections no longer have the NULL tags which saves up to 25% of the memory on typical C++ code 2 - faster parsing by not having to run the SetDIERelations() function anymore it is done when parsing the DWARF very efficiently. llvm-svn: 144983
-
Sean Callanan authored
templates is properly complete (though still empty). llvm-svn: 144982
-