Quentin Colombet
85689d934a
[RegisterBankInfo] Make addRegBankCoverage more capable to ease
...
targeting jobs.
Now, addRegBankCoverage also adds the subreg-classes not just the
sub-classes of the given register class.
llvm-svn: 265469
2016-04-05 21:20:12 +00:00
Quentin Colombet
d347d695c2
[RegisterBankInfo] Implement the methods to create register banks.
...
llvm-svn: 265464
2016-04-05 21:06:15 +00:00
Quentin Colombet
c4db2ad5b8
[RegisterBank] Provide a way to check if a register bank is valid.
...
Change the default constructor to create invalid object.
The target will have to properly initialize the register banks before
using them.
llvm-svn: 265460
2016-04-05 20:48:32 +00:00
Quentin Colombet
b235d32e74
[GlobalISel] Add the RegisterBankInfo class for the handling of register banks.
...
llvm-svn: 265449
2016-04-05 20:02:47 +00:00
Quentin Colombet
bdc3b4d523
[GlobalISel] Add a class, RegisterBank, to represent register banks.
...
llvm-svn: 265445
2016-04-05 19:54:44 +00:00
Quentin Colombet
8e8e85c19f
[GlobalISel] Add the skeleton of the RegBankSelect pass.
...
This pass is reponsible for assigning the generic virtual registers to register
banks.
llvm-svn: 265440
2016-04-05 19:06:01 +00:00
Quentin Colombet
dd4b137364
[IRTranslator] Translate unconditional branches.
...
llvm-svn: 263265
2016-03-11 17:28:03 +00:00
Quentin Colombet
f9b4934d1d
[MachineIRBuilder] Rework buildInstr API to maximize code reuse.
...
llvm-svn: 263264
2016-03-11 17:27:58 +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
87e23e5733
[GlobalISel] Fix a ranlib warning about empty TOC.
...
Fixes PR26733
llvm-svn: 262057
2016-02-26 20:05:02 +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
Mehdi Amini
40b369cf5a
GlobalISel is always built since r260566, reflect it in LLVMBuild.txt
...
Other component could not depends on an optional library in llvm-config
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 260701
2016-02-12 18:43:14 +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
8fd6718700
[Target] Add a helper function to check if an opcode is invalid after isel.
...
llvm-svn: 260590
2016-02-11 21:16:56 +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
2e00253750
Play nice with Visual Studio and attributes
...
llvm-svn: 260568
2016-02-11 19:33:21 +00:00
Quentin Colombet
bde158cbc7
[CMake] Produce an empty library for GlobalISel when not building it.
...
The rational for this change is that LLVMBuild cannot express conditional
dependencies. Therefore, when we start optionally using GlobalISel library for
say AArch64, without that change, all the tools that use the AArch64 library
would need to explicitly link with GlobalISel when we ask for it.
This does not scale.
Instead, we will set the dependencies between the target and GlobalISel and if
we did not ask to build GlobalISel, the library will just be empty.
Thanks to Chris Bieneman and Mehdi Animi for the idea.
llvm-svn: 260566
2016-02-11 19:18:27 +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
2ad1f851a1
[GlobalISel] Add a MachineIRBuilder class.
...
Helper class to build machine instrs. This is a higher abstraction
than MachineInstrBuilder.
llvm-svn: 260547
2016-02-11 17:44:59 +00:00
Quentin Colombet
2ecff3bff2
[GlobalISel] More detailed skeleton for the IRTranslator.
...
llvm-svn: 260456
2016-02-10 22:59:27 +00:00
Andrew Wilkins
a7a8ab71aa
[GlobalISel] make library an optional component
...
Summary:
Mark the LLVMGlobalISel library as optional in
LLVMBuild.txt, since the library is only built
if LLVM_BUILD_GLOBAL_ISEL is set. Without doing
this, llvm-config includes the library in the
list of components regardless of whether it's
built, and then will error out when asked for
the library names/paths.
Reviewers: qcolombet
Subscribers: joker.eph, llvm-commits, vkalintiris
Differential Revision: http://reviews.llvm.org/D16386
llvm-svn: 258379
2016-01-21 01:41:03 +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