- Jan 14, 2010
-
-
Dale Johannesen authored
llvm-svn: 93463
-
Jim Grosbach authored
llvm-svn: 93459
-
Jim Grosbach authored
catch info can get misplaced when a selector ends up more than one block removed from the parent invoke(s). This could happen when a landing pad is shared by multiple invokes and is also a target of a normal edge from elsewhere. llvm-svn: 93456
-
Dan Gohman authored
llvm-svn: 93417
-
- Jan 13, 2010
-
-
Evan Cheng authored
Commit some changes I had managed to lose last night while refactoring the code. Avoid change use of PHI instructions because it's not legal to insert any instructions before them. This fixes PR6027. llvm-svn: 93335
-
Evan Cheng authored
llvm-svn: 93313
-
Evan Cheng authored
llvm-svn: 93306
-
Chris Lattner authored
different BlockAddress labels, but nothing semantically important. Add a FIXME that BlockAddress codegen is broken if the LLVM BB has an empty name (e.g. strip was run). llvm-svn: 93303
-
Chris Lattner authored
Among other things, this would do very weird things if the basic block name had (e.g.) a space in it on darwin: makeNameProper would add quotes, then the mcsymbol would escape the quotes. llvm-svn: 93302
-
Chris Lattner authored
instead of returning it in an std::string. Based on this change: 1. Change TargetLoweringObjectFileCOFF::getCOFFSection to take a StringRef 2. Change a bunch of targets to call makeNameProper with a smallstring, making several of them *much* more efficient. 3. Rewrite Mangler::makeNameProper to not build names and then prepend prefixes, not use temporary std::strings, and to avoid other crimes. llvm-svn: 93298
-
Chris Lattner authored
llvm-svn: 93293
-
Chris Lattner authored
llvm-svn: 93292
-
Chris Lattner authored
integers on 64-bit systems. llvm-svn: 93291
-
Chris Lattner authored
llvm-svn: 93290
-
Evan Cheng authored
llvm-svn: 93286
-
Evan Cheng authored
llvm-svn: 93285
-
Ted Kremenek authored
llvm-svn: 93283
-
Evan Cheng authored
Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg. For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used. llvm-svn: 93278
-
Dale Johannesen authored
dumper doesn't really do what I want yet, but at least it doesn't crash now. llvm-svn: 93272
-
- Jan 12, 2010
-
-
Bob Wilson authored
llvm-svn: 93261
-
Dan Gohman authored
llvm-svn: 93228
-
Dan Gohman authored
llvm-svn: 93227
-
- Jan 11, 2010
-
-
Jakob Stoklund Olesen authored
This fixes PR5980. llvm-svn: 93184
-
Mon P Wang authored
loads are not in the default address space because the transformation discards src value info. llvm-svn: 93180
-
Devang Patel authored
llvm-svn: 93165
-
- Jan 09, 2010
-
-
Dan Gohman authored
really does need to be a vector type, because TargetLowering::getOperationAction for SIGN_EXTEND_INREG uses that type, and it needs to be able to distinguish between vectors and scalars. Also, fix some more issues with legalization of vector casts. llvm-svn: 93043
-
Evan Cheng authored
Dan pointed out checking whether a node is dead by comparing its opcode to ISD::DELETED_NODE is not safe. Use a DAGUpdateListener to remove dead nodes from work list instead. llvm-svn: 93031
-
- Jan 08, 2010
-
-
Evan Cheng authored
ReplaceAllUsesOfValueWith may delete other nodes that the one being replaced. Do not delete dead nodes again. llvm-svn: 92988
-
- Jan 07, 2010
-
-
rdar://7517201Chris Lattner authored
When folding a and(any_ext(load)) both the any_ext and the load have to have only a single use. This removes the anyext-uses.ll testcase which started failing because it is unreduced and unclear what it is testing. llvm-svn: 92950
-
Chris Lattner authored
time, no functionality change. llvm-svn: 92948
-
Evan Cheng authored
llvm-svn: 92943
-
Benjamin Kramer authored
llvm-svn: 92938
-
Benjamin Kramer authored
llvm-svn: 92920
-
Benjamin Kramer authored
llvm-svn: 92919
-
Benjamin Kramer authored
llvm-svn: 92918
-
Jakob Stoklund Olesen authored
llvm-svn: 92874
-
Jakob Stoklund Olesen authored
Some instructions refer to unique labels, and so cannot be trivially cloned with CloneMachineInstr. llvm-svn: 92873
-
- Jan 06, 2010
-
-
Jim Grosbach authored
multiple register definitions. llvm-svn: 92864
-
Evan Cheng authored
llvm-svn: 92850
-
Evan Cheng authored
(OP (trunc x), (trunc y)) -> (trunc (OP x, y)) Unfortunately this simple change causes dag combine to infinite looping. The problem is the shrink demanded ops optimization tend to canonicalize expressions in the opposite manner. That is badness. This patch disable those optimizations in dag combine but instead it is done as a late pass in sdisel. This also exposes some deficiencies in dag combine and x86 setcc / brcond lowering. Teach them to look pass ISD::TRUNCATE in various places. llvm-svn: 92849
-