Eric Christopher
4369c9b42c
Use the cached subtarget from the MachineFunction rather than
...
doing a lookup on the TargetMachine.
llvm-svn: 229995
2015-02-20 08:01:52 +00:00
Eric Christopher
d361ff8282
Use cached subtargets inside X86FixupLEAs.
...
llvm-svn: 228333
2015-02-05 19:27:01 +00:00
Craig Topper
d3c02f177a
Replace several 'assert(false' with 'llvm_unreachable' or fold a condition into the assert.
...
llvm-svn: 225160
2015-01-05 10:15:49 +00:00
Eric Christopher
d913448b38
Remove the TargetMachine forwards for TargetSubtargetInfo based
...
information and update all callers. No functional change.
llvm-svn: 214781
2014-08-04 21:25:23 +00:00
Sanjay Patel
6360441f99
Remove Atom references in description.
...
Any CPU can run this pass.
llvm-svn: 213190
2014-07-16 20:18:49 +00:00
Craig Topper
66f09ad041
[C++11] Use 'nullptr'.
...
llvm-svn: 210442
2014-06-08 22:29:17 +00:00
Eric Christopher
dd240fd79c
Revert r209381 as it isn't a local variable. Add a testcase so that
...
we know next time this happens.
llvm-svn: 210127
2014-06-03 21:01:39 +00:00
Eric Christopher
31b81ce5ee
Fixup formatting in the pass.
...
llvm-svn: 210126
2014-06-03 21:01:35 +00:00
Eric Christopher
0d5c99eb08
Avoid using subtarget features when adding X86 specific passes to
...
the pass pipeline.
llvm-svn: 209382
2014-05-22 01:46:02 +00:00
Eric Christopher
e0bd2fa927
Remove extra local variable.
...
llvm-svn: 209381
2014-05-22 01:45:59 +00:00
Alexey Volkov
6226de6721
[X86] Tune LEA usage for Silvermont
...
According to Intel Software Optimization Manual on Silvermont in some cases LEA
is better to be replaced with ADD instructions:
"The rule of thumb for ADDs and LEAs is that it is justified to use LEA
with a valid index and/or displacement for non-destructive destination purposes
(especially useful for stack offset cases), or to use a SCALE.
Otherwise, ADD(s) are preferable."
Differential Revision: http://reviews.llvm.org/D3826
llvm-svn: 209198
2014-05-20 08:55:50 +00:00
Craig Topper
062a2baef0
[C++] Use 'nullptr'. Target edition.
...
llvm-svn: 207197
2014-04-25 05:30:21 +00:00
Chandler Carruth
84e68b2994
[Modules] Fix potential ODR violations by sinking the DEBUG_TYPE
...
definition below all of the header #include lines, lib/Target/...
edition.
llvm-svn: 206842
2014-04-22 02:41:26 +00:00
Craig Topper
2d9361e325
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203378
2014-03-09 07:44:38 +00:00
Preston Gurd
f03a6e7fba
Forgot to add a break statement.
...
llvm-svn: 191715
2013-09-30 23:51:22 +00:00
Preston Gurd
f0b6288cbf
The X86FixupLEAs pass for Intel Atom must not call convertToThreeAddress
...
on ADD16rr opcodes, if src1 != src, since that would cause
convertToThreeAddress to try to create a virtual register. This is not
permitted after register allocation, which is when the X86FixupLEAs pass
runs.
This patch fixes PR16785.
llvm-svn: 191711
2013-09-30 23:18:42 +00:00
Bill Wendling
8f26840c5a
Don't cache the instruction and register info from the TargetMachine, because
...
the internals of TargetMachine could change.
No functionality change intended.
llvm-svn: 183571
2013-06-07 21:00:34 +00:00
Preston Gurd
128920d9fa
Make function documentation conform to llvm standards.
...
Expunge all remaining traces and use of live variable information.
llvm-svn: 180577
2013-04-25 21:31:33 +00:00
Preston Gurd
8b7ab4ba2b
This patch adds the X86FixupLEAs pass, which will reduce instruction
...
latency for certain models of the Intel Atom family, by converting
instructions into their equivalent LEA instructions, when it is both
useful and possible to do so.
llvm-svn: 180573
2013-04-25 20:29:37 +00:00