Evan Cheng
|
6cc1aeaad2
|
Don't update physical register def.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97861 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-06 01:14:19 +00:00 |
|
Evan Cheng
|
a5f32cb3d3
|
Avoid cse load instructions unless they are known to be invariant loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97747 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-04 21:18:08 +00:00 |
|
Evan Cheng
|
b3958e8032
|
Look ahead a bit to determine if a physical register def that is not marked dead is really alive. This is necessary to catch a lot of common cse opportunities for targets like x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97706 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-04 01:33:55 +00:00 |
|
Evan Cheng
|
67bda7215b
|
Fix a logic error. An instruction that has a live physical register def cannot be CSE'ed, but it *can* be used to replace a common subexpression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97688 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 23:59:08 +00:00 |
|
Evan Cheng
|
05bdcbb1ae
|
Re-apply r97667 but with a little bit of thought put into the patch. This implements a special DenseMapInfo trait for DenseMap<MachineInstr*> that compare the value of the MachineInstr rather than the pointer value. Since the hashing and equality test functions ignore defs it's useful for doing CSE kind optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97678 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 23:27:36 +00:00 |
|
Dan Gohman
|
319dfa3fb3
|
Revert 97667. It broke a bunch of tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97673 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 22:40:03 +00:00 |
|
Evan Cheng
|
a054ae02fd
|
Move DenseMapInfo for MachineInstr* to MachineInstr.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97667 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 21:47:16 +00:00 |
|
Evan Cheng
|
16b48b8a05
|
Machine CSE work in progress. It's doing some CSE now. But implicit def of physical registers are getting in the way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97664 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 21:20:05 +00:00 |
|
Evan Cheng
|
6ba9554988
|
Work in progress. Finding some cse now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97635 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-03 02:48:20 +00:00 |
|
Evan Cheng
|
c5bbba1e49
|
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97577 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-02 19:02:27 +00:00 |
|
Evan Cheng
|
c6fe333688
|
Add skeleton of a machine level cse pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97543 91177308-0d34-0410-b5e6-96231b3b80d8
|
2010-03-02 02:38:24 +00:00 |
|