Tim Northover
72eebfa4b0
GlobalISel: freeze reserved regs after IRTranslator.
...
We can freeze the registers after the MachineFrameInfo has been configured (by
telling it about calls, inline asm, ...). This doesn't happen at all yet, but
will be part of IR translation.
Fixes -verify-machineinstrs assertion.
llvm-svn: 275221
2016-07-12 22:23:42 +00:00
Quentin Colombet
f2a1909bb5
[IRTranslator] Support the translation of or.
...
Now or instructions get translated into G_OR.
llvm-svn: 272433
2016-06-10 20:50:35 +00:00
Quentin Colombet
13c55e07ed
[IRTranslator] Refactor to expose a translateBinaryOp method.
...
This method will be used for every binary operation.
NFC.
llvm-svn: 272431
2016-06-10 20:50:18 +00:00
Tom Stellard
b72a65ff53
[GlobalISel] Coding style and whitespace fixes
...
Reviewers: qcolombet
Subscribers: joker.eph, llvm-commits, vkalintiris
Differential Revision: http://reviews.llvm.org/D19119
llvm-svn: 266342
2016-04-14 17:23:33 +00:00
Quentin Colombet
dd4b137364
[IRTranslator] Translate unconditional branches.
...
llvm-svn: 263265
2016-03-11 17:28:03 +00:00
Quentin Colombet
e225e2541b
[IRTranslator] Update getOrCreateVReg API to use references.
...
A value that we want to keep in a virtual register cannot be null.
Reflect that in the API.
llvm-svn: 263263
2016-03-11 17:27:54 +00:00
Quentin Colombet
000b580b13
[MachineIRBuilder] Rename the setter of MF for consistency with the getter.
...
llvm-svn: 263262
2016-03-11 17:27:51 +00:00
Quentin Colombet
91ebd71e26
[MachineIRBuilder] Rename the setter for MBB for consistency with the getter.
...
llvm-svn: 263261
2016-03-11 17:27:47 +00:00
Quentin Colombet
53237a9e64
[IRTranslator] Update getOrCreateBB API to use references.
...
A null basic block is invalid, so just pass a reference.
llvm-svn: 263260
2016-03-11 17:27:43 +00:00
Quentin Colombet
39293d3aaa
[GlobalISel] Introduce initializer method to support start/stop-after features.
...
llvm-svn: 262896
2016-03-08 01:38:55 +00:00
Quentin Colombet
ba2a01645b
[GlobalISel] Re-apply r260922-260923 with MSVC-friendly code.
...
Original message:
Get rid of the ifdefs in TargetLowering.
Introduce a new API used only by GlobalISel: CallLowering.
This API will contain target hooks dedicated to call lowering.
llvm-svn: 260998
2016-02-16 19:26:02 +00:00
Aaron Ballman
fc64ef1a15
Reverting r260922-260923; they cause link failures with MSVC.
...
http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc2015/builds/15436/steps/build/logs/stdio
http://bb.pgr.jp/builders/msbuild-llvmclang-x64-msc18-DA/builds/961/steps/build_llvm/logs/stdio
llvm-svn: 260972
2016-02-16 15:29:06 +00:00
Quentin Colombet
1ce38545fb
[GlobalISel] Get rid of the ifdefs in TargetLowering.
...
Introduce a new API used only by GlobalISel: CallLowering.
This API will contain target hooks dedicated to call lowering.
llvm-svn: 260922
2016-02-16 00:57:44 +00:00
Quentin Colombet
ccd7725808
[IRTranslator] Use a single virtual register to represent any Value.
...
PR26161.
llvm-svn: 260602
2016-02-11 21:48:32 +00:00
Quentin Colombet
fd9d0a07d8
[GlobalISel] Add the necessary plumbing to lower formal arguments.
...
llvm-svn: 260579
2016-02-11 19:59:41 +00:00
Quentin Colombet
74d7d2f00b
[GlobalISel] Teach the IRTranslator how to lower returns.
...
llvm-svn: 260562
2016-02-11 18:53:28 +00:00
Quentin Colombet
a7fae162e6
[GlobalISel][IRTranslator] Change the ownership of the MIRBuilder field.
...
llvm-svn: 260551
2016-02-11 17:53:23 +00:00
Quentin Colombet
4f0ec8d2b0
[GlobalISel][IRTranslator] Fix a typo in assert.
...
llvm-svn: 260550
2016-02-11 17:52:28 +00:00
Quentin Colombet
17c494b91c
[GlobalISel][IRTranslator] Teach the pass how to translate Add instructions.
...
llvm-svn: 260549
2016-02-11 17:51:31 +00:00
Quentin Colombet
2ecff3bff2
[GlobalISel] More detailed skeleton for the IRTranslator.
...
llvm-svn: 260456
2016-02-10 22:59:27 +00:00
Quentin Colombet
105cf2b179
[GlobalISel] Add the proper cmake plumbing.
...
This patch adds the necessary plumbing to cmake to build the sources related to
GlobalISel.
To build the sources related to GlobalISel, we need to add -DBUILD_GLOBAL_ISEL=ON.
By default, this is OFF, thus GlobalISel sources will not impact people that do
not explicitly opt-in.
Differential Revision: http://reviews.llvm.org/D15983
llvm-svn: 258344
2016-01-20 20:58:56 +00:00