#
7c59ed6f |
| 24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a method to MachineInstr for testing whether it makes any volatile memory references.
llvm-svn: 56528
|
#
f8610ebe |
| 17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments.
llvm-svn: 56290
show more ...
|
#
c0d712d9 |
| 14-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
adjust last patch per review feedback
llvm-svn: 56194
|
#
38453eeb |
| 13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it.
llvm-svn: 56189
show more ...
|
#
1f3ab868 |
| 12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Pass "earlyclobber" bit through to machine representation; coalescer and RA need to know about it. No functional change.
llvm-svn: 56161
|
#
c7367b45 |
| 03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix addRegisterDead and addRegisterKilled to be more thorough when searching for redundant subregister dead/kill bits.
Previously it was common to see instructions marked like this: "RET %EAX<imp-
Fix addRegisterDead and addRegisterKilled to be more thorough when searching for redundant subregister dead/kill bits.
Previously it was common to see instructions marked like this: "RET %EAX<imp-use,kill>, %AX<imp-use,kill>"
With this change, addRegisterKilled continues scanning after finding the %EAX operand, so it proceeds to discover the redundant %AX kill and eliminates it, producing this: "RET %EAX<imp-use,kill>"
This currently has no effect on the generated code.
llvm-svn: 55698
show more ...
|
#
542ac629 |
| 30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fold isRematerializable checks into isSafeToReMat.
llvm-svn: 55563
|
#
f016b263 |
| 27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move the check whether it's worth remating to caller.
llvm-svn: 55434
|
#
57dc0785 |
| 27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isSafeToReMat out of 2addr pass.
llvm-svn: 55430
|
#
a078d83e |
| 24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace.
llvm-svn: 55293
|
#
72e7d915 |
| 24-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Print PseudoSourceValue.
llvm-svn: 55291
|
#
2da2bedc |
| 20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID.
llvm-s
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID.
llvm-svn: 55058
show more ...
|
#
96631091 |
| 14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move MachineInstr::getOpcode inline.
llvm-svn: 54807
|
#
fa8b2ea4 |
| 14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Speed up addRegisterDead by adding more fast checks before performing the expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions.
ll
Speed up addRegisterDead by adding more fast checks before performing the expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions.
llvm-svn: 54781
show more ...
|
#
804c95df |
| 28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the asso
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb.
Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement.
Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now.
llvm-svn: 54146
show more ...
|
#
3e9ad4d8 |
| 21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Now that the MachineInstr leaks are fixed, enable leak checking in the MachineInstr clone code.
llvm-svn: 53868
|
#
a7a20c49 |
| 19-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak in LiveIntervalAnalysis.
llvm-svn: 53779
|
#
0ece9438 |
| 17-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks. Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp.
llvm-svn: 53746
|
#
bf98f682 |
| 16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add an assert to check for empty flags for MachineMemOperand.
llvm-svn: 53680
|
#
0597e5b6 |
| 11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Trim unnecessary #includes.
llvm-svn: 53471
|
#
e9ba28dd |
| 10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local registe
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel.
llvm-svn: 53394
show more ...
|
#
f188fa44 |
| 08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
It's no longer necessary to test if a MachineBasicBlock's parent is non-null. It now always is.
llvm-svn: 53263
|
#
8293650d |
| 08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Verify that MachineMemOperand alignment is a non-zero power of 2.
llvm-svn: 53262
|
#
3b460303 |
| 07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for MachineInstrs, MachineBasicBlocks, and MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made during the "E
Pool-allocation for MachineInstrs, MachineBasicBlocks, and MachineMemOperands. The pools are owned by MachineFunctions.
This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases.
llvm-svn: 53212
show more ...
|
#
aedb4a61 |
| 07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand's constructor out of line, to avoid a #include dependency on Support/MathExtras.h in the header file.
llvm-svn: 53200
|