Dan Gohman
|
933c762371
Manage MachineFunctions with an analysis Pass instead of the Annotable
|
16 年之前 |
Evan Cheng
|
2c4d96dfe9
Avoid adding a duplicate def. This fixes PR4478.
|
16 年之前 |
Evan Cheng
|
694f6c81e8
Fix PR4419: handle defs of partial uses.
|
16 年之前 |
Evan Cheng
|
95299c194d
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
|
16 年之前 |
Jeffrey Yasskin
|
493a3d015c
LiveVariables::VarInfo contains an AliveBlocks BitVector, which has as many
|
16 年之前 |
Evan Cheng
|
aed4a430f4
Eliminate VarInfo::UsedBlocks.
|
16 年之前 |
Evan Cheng
|
a894ae130b
Fix PR3243: a LiveVariables bug. When HandlePhysRegKill is checking whether the last reference is also the last def (i.e. dead def), it should also check if last reference is the current machine instruction being processed. This can happen when it is processing a physical register use and setting the current machine instruction as sub-register's last ref.
|
16 年之前 |
Devang Patel
|
59500c8f9a
Silence unused variable warnings.
|
16 年之前 |
Dan Gohman
|
4a829ecc54
Use find_first/find_next to iterate through all the set bits in a
|
17 年之前 |
Dan Gohman
|
d735b8019b
Switch the MachineOperand accessors back to the short names like
|
17 年之前 |
Dan Gohman
|
3bdf5fe71a
Factor out code into HandleVirtRegDef, for consistency with
|
17 年之前 |
Owen Anderson
|
bbf5583283
Use SmallSet instead of std::set to save allocations.
|
17 年之前 |
Owen Anderson
|
bd3ba461eb
- Fix SelectionDAG to generate correct CFGs.
|
17 年之前 |
Evan Cheng
|
9f1c8317a4
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
|
17 年之前 |
Evan Cheng
|
5b9f60bc22
Use std::replace instead of std::find and push_back.
|
17 年之前 |
Evan Cheng
|
be04dc1413
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers.
|
17 年之前 |
Owen Anderson
|
bffdf66b80
Use a SmallSet when we can to reduce memory allocations.
|
17 年之前 |
Dan Gohman
|
48b0b882c7
Fix the text in an assert string.
|
17 年之前 |
Bill Wendling
|
ebcba612b5
This situation can occur:
|
17 年之前 |
Evan Cheng
|
0d4bdde327
Rewrite LiveVariable liveness computation. The new implementation is much simplified. It eliminated the nasty recursive routines and removed the partial def / use bookkeeping. There is also potential for performance improvement by replacing the conservative handling of partial physical register definitions. The code is currently disabled until live interval analysis is taught of the name scheme.
|
17 年之前 |
Evan Cheng
|
ea1d9cdc4e
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping.
|
17 年之前 |
Evan Cheng
|
94202018c5
Fix live variables issues:
|
17 年之前 |
Evan Cheng
|
6130f66eaa
Refactor code. Remove duplicated functions that basically do the same thing as
|
17 年之前 |
Bill Wendling
|
1d5e8196c0
Clear PhysRegPartUse for the sub register as well.
|
17 年之前 |
Bill Wendling
|
c927cc8731
Remove one of the fixmes that I put in there. From Evan:
|
17 年之前 |
Bill Wendling
|
55574c2cea
Improve some comments explaining the "handle kills" stuff better.
|
17 年之前 |
Bill Wendling
|
fe8276cec2
Fix comment.
|
17 年之前 |
Bill Wendling
|
6d794746b7
Added some comments and reformatted others. No functionality change.
|
17 年之前 |
Bill Wendling
|
420cdebbcb
More constification of things. More comments added. No functionality
|
17 年之前 |
Bill Wendling
|
90a3868fe5
No functionality change:
|
17 年之前 |