- Mar 27, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 153518
-
Jakob Stoklund Olesen authored
Branch folding can use a register scavenger to update liveness information when required. Don't do that if liveness information is already invalid. llvm-svn: 153517
-
Chris Lattner authored
llvm-svn: 153513
-
Jakob Stoklund Olesen authored
Late optimization passes like branch folding and tail duplication can transform the machine code in a way that makes it expensive to keep the register liveness information up to date. There is a fuzzy line between register allocation and late scheduling where the liveness information degrades. The MRI::tracksLiveness() flag makes the line clear: While true, liveness information is accurate, and can be used for register scavenging. Once the flag is false, liveness information is not accurate, and can only be used as a hint. Late passes generally don't need the liveness information, but they will sometimes use the register scavenger to help update it. The scavenger enforces strict correctness, and we have to spend a lot of code to update register liveness that may never be used. llvm-svn: 153511
-
Evan Cheng authored
register that's read by the preheader terminator. rdar://11095580 llvm-svn: 153492
-
Lang Hames authored
copies being considered for removal. Make sure to track all of the copies, rather than just the most recent encountered, by holding a DenseSet instead of an unsigned in SrcMap. No test case - couldn't reduce something with a sane size. llvm-svn: 153487
-
Lang Hames authored
llvm-svn: 153483
-
- Mar 26, 2012
-
-
Eric Christopher authored
backtrace locations. Testcase forthcoming, but I wanted to get some testing here. Should fix: PR12323 PR12314 rdar://11091100 llvm-svn: 153471
-
Benjamin Kramer authored
llvm-svn: 153438
-
Craig Topper authored
llvm-svn: 153429
-
Eric Christopher authored
llvm-svn: 153428
-
- Mar 24, 2012
-
-
Hal Finkel authored
llvm-svn: 153372
-
Jim Grosbach authored
Dump the hex representation to the comment stream as well as the float value. llvm-svn: 153346
-
- Mar 23, 2012
-
-
Lang Hames authored
llvm-svn: 153341
-
- Mar 22, 2012
-
-
-
-
Eric Christopher authored
metadata operand as an actual operand, leading to an assert. Error out in this case. rdar://11007633 llvm-svn: 153234
-
Chad Rosier authored
execution-time regression for nsieve-bits on the ARMv7 -O0 -g nightly tester. This may also improve compile-time on architectures that would otherwise generate a libcall for urem (e.g., ARM) or fall back to the DAG selector. rdar://10810716 llvm-svn: 153230
-
- Mar 21, 2012
-
-
Jim Grosbach authored
Type legalization can zero-extend the elements of the build_vector node, so, for example, we may have an <8 x i8> with i32 elements of value 255. That should return 'true' for the vector being all ones. llvm-svn: 153203
-
Andrew Trick authored
llvm-svn: 153162
-
Andrew Trick authored
llvm-svn: 153161
-
Andrew Trick authored
llvm-svn: 153160
-
Andrew Trick authored
llvm-svn: 153159
-
Andrew Trick authored
llvm-svn: 153158
-
- Mar 20, 2012
-
-
Bill Wendling authored
i128). In that case, we may not be able to print out the MCExpr as an expression. For instance, we could have an MCExpr like this: 0xBEEF0000BEEF0000 | (0xBEEF0000BEEF0000 << 64) The MCExpr printer handles sizes up to 64-bits, but this expression would require 128-bits. In this situation, try to evaluate the constant expression and emit that as the value into 64-bit chunks. <rdar://problem/11070338> llvm-svn: 153081
-
Craig Topper authored
When combining (vextract shuffle (load ), <1,u,u,u>), 0) -> (load ), add users of the final load to the worklist too. Needed by changes I'm preparing to make to X86 backend. llvm-svn: 153078
-
Eric Christopher authored
a variable. The previous code would break the debug info changing code invariant. This will regress debug info for arguments where we elide the alloca created. Fixes rdar://11066468 llvm-svn: 153074
-
Eric Christopher authored
llvm-svn: 153073
-
Eric Christopher authored
llvm-svn: 153072
-
Eric Christopher authored
llvm-svn: 153071
-
Pete Cooper authored
llvm-svn: 153064
-
- Mar 19, 2012
-
-
Lang Hames authored
instructions have been scheduled. Handy for tracking down scheduler bugs, or bugs exposed by scheduling. llvm-svn: 153045
-
Duncan Sands authored
llvm-svn: 153035
-
- Mar 17, 2012
-
-
Benjamin Kramer authored
llvm-svn: 152999
-
Benjamin Kramer authored
This is particularly helpful as both arguments tend to be constants. llvm-svn: 152991
-
- Mar 16, 2012
-
-
Benjamin Kramer authored
ScheduleDAGInstrs: When adding uses we add them into a set that's empty at the beginning, no need to maintain another set for the added regs. llvm-svn: 152934
-
Benjamin Kramer authored
Saves one machine word on MachineInstr (88->80 bytes on x86_64, 48->44 on i386). llvm-svn: 152930
-
Benjamin Kramer authored
No functionality change. llvm-svn: 152927
-
Andrew Trick authored
These edges are not really necessary, but it is consistent with the way we currently create physreg edges. Scheduler heuristics that expect a DAG edge to the block terminator could benefit from this change. Although in the future I hope we have a better mechanism for modeling latency across scheduling regions. llvm-svn: 152895
-
Chad Rosier authored
on our internal nightly testers. So, basically revert r152486 again. Abbreviated original commit message: Implement a more intelligent way of spilling uses across an invoke boundary. It looks as if Chander's inlining work, r152737, exposed an issue. llvm-svn: 152887
-