- Jun 28, 2010
-
-
Devang Patel authored
llvm-svn: 106990
-
- Jun 26, 2010
-
-
Rafael Espindola authored
This produces terrible but correct code. llvm-svn: 106952
-
Bob Wilson authored
regressions. --- Reverse-merging r106939 into '.': U test/CodeGen/Thumb2/thumb2-ifcvt3.ll U lib/CodeGen/IfConversion.cpp llvm-svn: 106951
-
Benjamin Kramer authored
llvm-svn: 106943
-
Bob Wilson authored
if-conversion. The RemoveExtraEdges function doesn't work for blocks that end with unanalyzable branches, so in those cases, the "extra" edges must be explicitly removed. The CopyAndPredicateBlock and MergeBlocks methods can also avoid copying successor edges due to branches that have already been removed. The latter case is especially helpful when MergeBlocks is called for handling "diamond" if-conversions, where otherwise you can end up with some weird intermediate states in the CFG. Unfortunately I've been unable to find cases where this cleanup actually makes a significant difference in the code. There is one test where we manage to remove an empty block at the end of a function. Radar 6911268. llvm-svn: 106939
-
Jim Grosbach authored
just at the head, when doing diamond if-conversion. rdar://7797940 llvm-svn: 106907
-
Jakob Stoklund Olesen authored
The VNInfo.kills vector was almost unused except for all the code keeping it updated. The few places using it were easily rewritten to check for interval ends instead. The two new methods LiveInterval::killedAt and killedInRange are replacements. This brings us down to 3 independent data structures tracking kills. llvm-svn: 106905
-
Evan Cheng authored
llvm-svn: 106901
-
Devang Patel authored
llvm-svn: 106895
-
Jim Grosbach authored
llvm-svn: 106894
-
- Jun 25, 2010
-
-
Dale Johannesen authored
for an "i" constraint should get lowered; PR 6309. While this argument was passed around a lot, this is the only place it was used, so it goes away from a lot of other places. llvm-svn: 106893
-
Bill Wendling authored
- 2010-06-25-CoalescerSubRegDefDead.ll is the testcase for r106878. llvm-svn: 106880
-
Bill Wendling authored
are dead, not just the def of this register. I.e., a register could be dead, but it's subreg isn't. Testcase to follow with a subsequent patch. llvm-svn: 106878
-
Dale Johannesen authored
llvm-svn: 106865
-
Duncan Sands authored
is not used. Spotted by gcc-4.6. llvm-svn: 106854
-
Gabor Greif authored
and CallInst for getting hold of the intrinsic's arguments simplify along the way (at least for me this is much more legible now) Bill, Baldrick or Anton, please review\! llvm-svn: 106838
-
Gabor Greif authored
llvm-svn: 106837
-
Gabor Greif authored
llvm-svn: 106836
-
Gabor Greif authored
llvm-svn: 106835
-
Gabor Greif authored
llvm-svn: 106833
-
Gabor Greif authored
llvm-svn: 106829
-
Gabor Greif authored
llvm-svn: 106828
-
Gabor Greif authored
llvm-svn: 106827
-
Dale Johannesen authored
is reused as an input. PR 4118. Testcase is too big, as usual with bugs in this area, but there's one in the PR. llvm-svn: 106816
-
Jakob Stoklund Olesen authored
This fixes PR7479 and PR7485. The test cases from those PRs are big, so not included. However, PR7485 comes from self hosting on FreeBSD, so we will surely hear about any regression. llvm-svn: 106811
-
Dan Gohman authored
llvm-svn: 106809
-
Dan Gohman authored
and to clean up unused incoming physregs from the live-in list. llvm-svn: 106805
-
Bill Wendling authored
original SDNode. This is badness. Also, this function allows one SDNode to point multiple flags to another SDNode. Badness as well. llvm-svn: 106793
-
- Jun 24, 2010
-
-
Devang Patel authored
DBG_VALUE machine instruction pointing to undefined register for a variable justify a separate scope if the variable is inlined function's argument. Radar 8122864. llvm-svn: 106792
-
Jakob Stoklund Olesen authored
vector instead. This avoids needless copying and allocation. Add documentation. llvm-svn: 106788
-
Jakob Stoklund Olesen authored
This method was always a bit too simplistic for the real world. It didn't really deal with subregisters and such. llvm-svn: 106781
-
Jakob Stoklund Olesen authored
llvm-svn: 106780
-
Jakob Stoklund Olesen authored
This code path has never really been used, and we are going to be handling spilling through the Spiller interface in the future. llvm-svn: 106777
-
Bill Wendling authored
which don't have a catch-all associated with them not just clean-ups. This fixes the SingleSource/Benchmarks/Shootout-C++/except.cpp testcase that broke because of my change r105902. llvm-svn: 106772
-
Jakob Stoklund Olesen authored
CoalescerPair can determine if a copy can be coalesced, and which register gets merged away. The old logic in SimpleRegisterCoalescing had evolved into something a bit too convoluted. This second attempt fixes some crashes that only occurred Linux. llvm-svn: 106769
-
Jakob Stoklund Olesen authored
[L]oad, [u]se, [d]ef, or [S]tore slots. This makes it easier to see if two indices refer to the same instruction, avoiding mental mod 4 calculations. llvm-svn: 106766
-
Dan Gohman authored
which trivially fold away. llvm-svn: 106765
-
Jakob Stoklund Olesen authored
Also keep track of the original DstREg before subregister adjustments. llvm-svn: 106753
-
Jakob Stoklund Olesen authored
In this case it is essential that the kill is real because the spiller will decide to omit a spill if it thinks there is a later kill. llvm-svn: 106751
-
Dan Gohman authored
as many tests as possible. llvm-svn: 106749
-