#
50f17235 |
| 15-Sep-2015 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Revert r247692: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Eric has replied and has demanded the patch be reverted.
llvm-svn: 247702
|
#
153010c5 |
| 15-Sep-2015 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Re-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's
Re-commit r247683: Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's (which aren't).
For the moment, TargetTuple simply passes all requests to the Triple object it holds. Once it has replaced Triple, it will start to implement the interface in a more suitable way.
This change makes some changes to the public C++ API. In particular, InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer() now take TargetTuples instead of Triples. The other public C++ API's have been left as-is for the moment to reduce patch size.
This commit also contains a trivial patch to clang to account for the C++ API change. Thanks go to Pavel Labath for fixing LLDB for me.
Reviewers: rengolin
Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D10969
llvm-svn: 247692
show more ...
|
#
c40de480 |
| 15-Sep-2015 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Revert r247684 - Replace Triple with a new TargetTuple ...
LLDB needs to be updated in the same commit.
llvm-svn: 247686
|
#
18d4b0da |
| 15-Sep-2015 |
Daniel Sanders <daniel.sanders@imgtec.com> |
Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's (which aren't).
F
Replace Triple with a new TargetTuple in MCTargetDesc/* and related. NFC.
Summary: This is the first patch in the series to migrate Triple's (which are ambiguous) to TargetTuple's (which aren't).
For the moment, TargetTuple simply passes all requests to the Triple object it holds. Once it has replaced Triple, it will start to implement the interface in a more suitable way.
This change makes some changes to the public C++ API. In particular, InitMCSubtargetInfo(), createMCRelocationInfo(), and createMCSymbolizer() now take TargetTuples instead of Triples. The other public C++ API's have been left as-is for the moment to reduce patch size.
This commit also contains a trivial patch to clang to account for the C++ API change.
Reviewers: rengolin
Subscribers: jyknight, dschuff, arsenm, rampitec, danalbert, srhines, javed.absar, dsanders, echristo, emaste, jholewinski, tberghammer, ted, jfb, llvm-commits, rengolin
Differential Revision: http://reviews.llvm.org/D10969
llvm-svn: 247683
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2 |
|
#
fe2c8b80 |
| 27-Jul-2015 |
Colin LeMahieu <colinl@codeaurora.org> |
[llvm-mc] Pushing plumbing through for --fatal-warnings flag.
llvm-svn: 243334
|
Revision tags: llvmorg-3.7.0-rc1 |
|
#
86ecbb7b |
| 30-Jun-2015 |
Ranjeet Singh <Ranjeet.Singh@arm.com> |
Reverting r241058 because it's causing buildbot failures.
llvm-svn: 241061
|
#
5b119091 |
| 30-Jun-2015 |
Ranjeet Singh <Ranjeet.Singh@arm.com> |
There are a few places where subtarget features are still represented by uint64_t, this patch replaces these usages with the FeatureBitset (std::bitset) type.
Differential Revision: http://reviews.l
There are a few places where subtarget features are still represented by uint64_t, this patch replaces these usages with the FeatureBitset (std::bitset) type.
Differential Revision: http://reviews.llvm.org/D10542
llvm-svn: 241058
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
#
4f79f96f |
| 16-Jun-2015 |
Kit Barton <kbarton@ca.ibm.com> |
Properly handle the mftb instruction.
The mftb instruction was incorrectly marked as deprecated in the PPC Backend. Instead, it should not be treated as deprecated, but rather be implemented using t
Properly handle the mftb instruction.
The mftb instruction was incorrectly marked as deprecated in the PPC Backend. Instead, it should not be treated as deprecated, but rather be implemented using the mfspr instruction. A similar patch was put into GCC last year. Details can be found at:
https://sourceware.org/ml/binutils/2014-11/msg00383.html. This change will replace instances of the mftb instruction with the mfspr instruction for all CPUs except 601 and pwr3. This will also be the default behaviour.
Additional details can be found in:
https://llvm.org/bugs/show_bug.cgi?id=23680
Phabricator review: http://reviews.llvm.org/D10419
llvm-svn: 239827
show more ...
|
#
95fb9b93 |
| 02-Jun-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Merge MCELF.h into MCSymbolELF.h.
Now that we have a dedicated type for ELF symbol, these helper functions can become member function of MCSymbolELF.
llvm-svn: 238864
|
#
13760bd1 |
| 30-May-2015 |
Jim Grosbach <grosbach@apple.com> |
MC: Clean up MCExpr naming. NFC.
llvm-svn: 238634
|
#
f4a13653 |
| 27-May-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use operator<< instead of print in a few more places.
llvm-svn: 238315
|
#
db0712f9 |
| 26-May-2015 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
Use std::bitset for SubtargetFeatures.
Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were ve
Use std::bitset for SubtargetFeatures.
Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were very close to hitting this bound, switching the features to use a bitset. No functional change.
The first several times this was committed (e.g. r229831, r233055), it caused several buildbot failures. Apparently the reason for most failures was both clang and gcc's inability to deal with large numbers (> 10K) of bitset constructor calls in tablegen-generated initializers of instruction info tables. This should now be fixed.
llvm-svn: 238192
show more ...
|
#
e26236ee |
| 22-May-2015 |
Bill Schmidt <wschmidt@linux.vnet.ibm.com> |
[PPC64] Add support for clrbhrb, mfbhrbe, rfebb.
This patch adds support for the ISA 2.07 additions involving the branch history rolling buffer and event-based branching. These will not be used by
[PPC64] Add support for clrbhrb, mfbhrbe, rfebb.
This patch adds support for the ISA 2.07 additions involving the branch history rolling buffer and event-based branching. These will not be used by typical applications, so built-in support is not required. They will only be available via inline assembly.
Assembly/disassembly tests are included in the patch.
llvm-svn: 238032
show more ...
|
#
6f482000 |
| 18-May-2015 |
Jim Grosbach <grosbach@apple.com> |
MC: Clean up method names in MCContext.
The naming was a mish-mash of old and new style. Update to be consistent with the new. NFC.
llvm-svn: 237594
|
Revision tags: llvmorg-3.6.1 |
|
#
e9119e41 |
| 13-May-2015 |
Jim Grosbach <grosbach@apple.com> |
MC: Modernize MCOperand API naming. NFC.
MCOperand::Create*() methods renamed to MCOperand::create*().
llvm-svn: 237275
|
#
c3434b39 |
| 13-May-2015 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
Reverting r237234, "Use std::bitset for SubtargetFeatures"
The buildbots are still not satisfied. MIPS and ARM are failing (even though at least MIPS was expected to pass).
llvm-svn: 237245
|
#
aba4a34e |
| 13-May-2015 |
Michael Kuperstein <michael.m.kuperstein@intel.com> |
Use std::bitset for SubtargetFeatures
Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were ver
Use std::bitset for SubtargetFeatures
Previously, subtarget features were a bitfield with the underlying type being uint64_t. Since several targets (X86 and ARM, in particular) have hit or were very close to hitting this bound, switching the features to use a bitset. No functional change.
The first two times this was committed (r229831, r233055), it caused several buildbot failures. At least some of the ARM and MIPS ones were due to gcc/binutils issues, and should now be fixed.
llvm-svn: 237234
show more ...
|
Revision tags: llvmorg-3.6.1-rc1 |
|
#
f3c94b1e |
| 07-May-2015 |
Nemanja Ivanovic <nemanja.i.ibm@gmail.com> |
Add VSX Scalar loads and stores to the PPC back end
This patch corresponds to review: http://reviews.llvm.org/D9440
It adds a new register class to the PPC back end to contain single precision valu
Add VSX Scalar loads and stores to the PPC back end
This patch corresponds to review: http://reviews.llvm.org/D9440
It adds a new register class to the PPC back end to contain single precision values in VSX registers. Additionally, it adds scalar loads and stores for VSX registers.
llvm-svn: 236755
show more ...
|
#
4dc8fcc2 |
| 23-Apr-2015 |
Hal Finkel <hfinkel@anl.gov> |
[PowerPC] Support register name prefixes for vector registers
Match binutils by supporting the optional register name prefix for new vector registers ("vs" for VSX registers and "q" for QPX register
[PowerPC] Support register name prefixes for vector registers
Match binutils by supporting the optional register name prefix for new vector registers ("vs" for VSX registers and "q" for QPX registers).
llvm-svn: 235665
show more ...
|
#
fefcfffe |
| 23-Apr-2015 |
Hal Finkel <hfinkel@anl.gov> |
[PowerPC] Add asm/disasm support for dcbt with hint
Add assembler/disassembler support for dcbt/dcbtst (and aliases) with the hint field specified (non-zero). Unforunately, the syntax for this instr
[PowerPC] Add asm/disasm support for dcbt with hint
Add assembler/disassembler support for dcbt/dcbtst (and aliases) with the hint field specified (non-zero). Unforunately, the syntax for this instruction is special in that it differs for server vs. embedded cores: dcbt ra, rb, th [server] dcbt th, ra, rb [embedded] where th can be omitted when it is 0. dcbtst is the same. Thus we need to play games in the parser and the printer to flip the operands around on the embedded cores. We'll use the server syntax as the default (binutils currently uses the embedded form by default, but IBM is changing that).
We also stop marking dcbtst as having unmodeled side effects (this is not necessary, it is just a hint like dcbt -- noticed by inspection, so no separate test case).
llvm-svn: 235657
show more ...
|
#
6e9110ab |
| 28-Mar-2015 |
Hal Finkel <hfinkel@anl.gov> |
[PowerPC] Add asm parser support for bitmask forms of rotate-and-mask instructions
The asm syntax for the 32-bit rotate-and-mask instructions can take a 32-bit bitmask instead of an (mb, me) pair. T
[PowerPC] Add asm parser support for bitmask forms of rotate-and-mask instructions
The asm syntax for the 32-bit rotate-and-mask instructions can take a 32-bit bitmask instead of an (mb, me) pair. This syntax is not specified in the Power ISA manual, but is accepted by GNU as, and is documented in IBM's Assembler Language Reference. The GNU Multiple Precision Arithmetic Library (gmp) contains assembly that uses this syntax.
To implement this, I moved the isRunOfOnes utility function from PPCISelDAGToDAG.cpp to PPCMCTargetDesc.h.
llvm-svn: 233483
show more ...
|
#
535e69de |
| 25-Mar-2015 |
Kit Barton <kbarton@ca.ibm.com> |
Add Hardware Transactional Memory (HTM) Support
This patch adds Hardware Transaction Memory (HTM) support supported by ISA 2.07 (POWER8). The intrinsic support is based on GCC one [1], but currently
Add Hardware Transactional Memory (HTM) Support
This patch adds Hardware Transaction Memory (HTM) support supported by ISA 2.07 (POWER8). The intrinsic support is based on GCC one [1], but currently only the 'PowerPC HTM Low Level Built-in Function' are implemented.
The HTM instructions follows the RC ones and the transaction initiation result is set on RC0 (with exception of tcheck). Currently approach is to create a register copy from CR0 to GPR and comapring. Although this is suboptimal, since the branch could be taken directly by comparing the CR0 value, it generates code correctly on both test and branch and just return value. A possible future optimization could be elimitate the MFCR instruction to branch directly.
The HTM usage requires a recently newer kernel with PPC HTM enabled. Tested on powerpc64 and powerpc64le.
This is send along a clang patch to enabled the builtins and option switch.
[1] https://gcc.gnu.org/onlinedocs/gcc/PowerPC-Hardware-Transactional-Memory-Built-in-Functions.html
Phabricator Review: http://reviews.llvm.org/D8247
llvm-svn: 233204
show more ...
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
9f380a3c |
| 16-Mar-2015 |
David Blaikie <dblaikie@gmail.com> |
Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter
This covers essentially all of llvm's headers and libs. One or two weird cases I wasn't sure were worth/a
Fix uses of reserved identifiers starting with an underscore followed by an uppercase letter
This covers essentially all of llvm's headers and libs. One or two weird cases I wasn't sure were worth/appropriate to fix.
llvm-svn: 232394
show more ...
|
#
e8effe1e |
| 04-Mar-2015 |
Nemanja Ivanovic <nemanja.i.ibm@gmail.com> |
Add LLVM support for PPC cryptography builtins Review: http://reviews.llvm.org/D7955
llvm-svn: 231285
|
Revision tags: llvmorg-3.6.0 |
|
#
c93a9a2c |
| 25-Feb-2015 |
Hal Finkel <hfinkel@anl.gov> |
[PowerPC] Add support for the QPX vector instruction set
This adds support for the QPX vector instruction set, which is used by the enhanced A2 cores on the IBM BG/Q supercomputers. QPX vectors are
[PowerPC] Add support for the QPX vector instruction set
This adds support for the QPX vector instruction set, which is used by the enhanced A2 cores on the IBM BG/Q supercomputers. QPX vectors are 256 bytes wide, holding 4 double-precision floating-point values. Boolean values, modeled here as <4 x i1> are actually also represented as floating-point values (essentially { -1, 1 } for { false, true }). QPX shares many features with Altivec and VSX, but is distinct from both of them. One major difference is that, instead of adding completely-separate vector registers, QPX vector registers are extensions of the scalar floating-point registers (lane 0 is the corresponding scalar floating-point value). The operations supported on QPX vectors mirrors that supported on the scalar floating-point values (with some additional ones for permutations and logical/comparison operations).
I've been maintaining this support out-of-tree, as part of the bgclang project, for several years. This is not the entire bgclang patch set, but is most of the subset that can be cleanly integrated into LLVM proper at this time. Adding this to the LLVM backend is part of my efforts to rebase bgclang to the current LLVM trunk, but is independently useful (especially for codes that use LLVM as a JIT in library form).
The assembler/disassembler test coverage is complete. The CodeGen test coverage is not, but I've included some tests, and more will be added as follow-up work.
llvm-svn: 230413
show more ...
|