#
024d7ae1 |
| 10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a static MachineOperand::clobbersPhysReg().
It can be necessary to detach a register mask pointer from its MachineOperand. This method is convenient for checking clobbered physregs on a detached
Add a static MachineOperand::clobbersPhysReg().
It can be necessary to detach a register mask pointer from its MachineOperand. This method is convenient for checking clobbered physregs on a detached bitmask pointer.
llvm-svn: 150261
show more ...
|
#
a16ae597 |
| 10-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add register mask support to InterferenceCache.
This makes global live range splitting behave identically with and without register mask operands.
This is not necessarily the best way of using regi
Add register mask support to InterferenceCache.
This makes global live range splitting behave identically with and without register mask operands.
This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls.
For now the goal is to produce identical assembly when enabling register masks.
llvm-svn: 150259
show more ...
|
#
f35c8403 |
| 13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
Remove pointless mode line in .cpp file.
llvm-svn: 148143
|
#
4d4fef23 |
| 13-Jan-2012 |
Andrew Trick <atrick@apple.com> |
wrong filename
llvm-svn: 148103
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1 |
|
#
cacefc7d |
| 23-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow null interference cursors to be queried.
They always report 'no interference'.
llvm-svn: 135843
|
#
a153ca58 |
| 14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Reapply r135121 with a fixed copy constructor.
Original commit message:
Count references to interference cache entries.
Each InterferenceCache::Cursor instance references a cache entry. A non-zero
Reapply r135121 with a fixed copy constructor.
Original commit message:
Count references to interference cache entries.
Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register.
This makes it possible to have multiple live cursors examining interference for different physregs.
The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors().
Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either.
llvm-svn: 135130
show more ...
|
#
1d4badae |
| 14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert r135121 which broke a gcc-4.2 builder.
llvm-svn: 135122
|
#
c270cb6e |
| 14-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Count references to interference cache entries.
Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new regis
Count references to interference cache entries.
Each InterferenceCache::Cursor instance references a cache entry. A non-zero reference count guarantees that the entry won't be reused for a new register.
This makes it possible to have multiple live cursors examining interference for different physregs.
The total number of live cursors into a cache must be kept below InterferenceCache::getMaxCursors().
Code generation should be unaffected by this change, and it doesn't seem to affect the cache replacement strategy either.
llvm-svn: 135121
show more ...
|
#
4ad6c160 |
| 09-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Precompute interference for neighbor blocks as long as there is no interference.
This doesn't require seeking in the live interval union, so it is very cheap.
llvm-svn: 129187
|
#
994c1683 |
| 07-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Avoid moving iterators when the previous block was just visited.
llvm-svn: 129081
|
Revision tags: llvmorg-2.9.0 |
|
#
91cbcaf9 |
| 02-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an InterferenceCache class for caching per-block interference ranges.
When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data
Add an InterferenceCache class for caching per-block interference ranges.
When the greedy register allocator is splitting multiple global live ranges, it tends to look at the same interference data many times. The InterferenceCache class caches queries for unaltered LiveIntervalUnions.
llvm-svn: 128764
show more ...
|