Commit Graph

45740 Commits

Author SHA1 Message Date
Simon Pilgrim
573646d88a [X86][MPX] Tag TSX/HLE/SGX instructions scheduler classes
Currently tagged these as system instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320177 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 19:26:22 +00:00
Konstantin Zhuravlyov
9621d21ae2 AMDGPU: Report Arg's Value name in metadata if kernel_arg_name metadata is not available
Differential Revision: https://reviews.llvm.org/D40924


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320176 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 19:22:12 +00:00
Simon Pilgrim
e21f86e44e [X86][MPX] Tag MPX instructions scheduler classes
Currently tagged these as system instructions, once we have uses for them (ASAN?) and they are faster we will need to improve on this.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320173 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 19:03:42 +00:00
Sanjay Patel
15884a222d [x86] use hasAVX2() rather than hasInt256(); NFC
These are aliases, but the thing we're checking here is that the target has
vpsllv*, not that the data type is 256-bit. Those instructions exist for
128-bit vectors too...but sadly, not for all element sizes.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320170 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 18:35:51 +00:00
Simon Pilgrim
17640ba173 [X86] Tag move immediate instructions scheduler classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320169 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 18:35:40 +00:00
Simon Pilgrim
80c5989127 [X86][SHA] Tag SHA instructions scheduler classes
Put these under VecIMul itinerary classes for now - seems to be a good average value


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320161 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 16:38:41 +00:00
Simon Pilgrim
90a51e3bbd [X86] Tag VIA PadLock crypto instructions scheduler classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320159 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 16:06:40 +00:00
Simon Pilgrim
705d9d27f4 [X86] Tag PKU/INVPCID/RDPID/SMAP/SMX/PTWRITE system instructions scheduler classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320158 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 15:48:37 +00:00
Simon Pilgrim
4b64a06806 [X86][AVX512] Tag CLWB instruction to CLFLUSH/PREFETCH scheduler class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320156 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 15:19:10 +00:00
Simon Pilgrim
c264a07cd6 [X86][AVX512] Tag AVX512_512_SEXT_MASK_* instructions scheduler classes
Match VPTERNLOG which these pseudos will eventually alias to

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320154 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 15:17:32 +00:00
Tim Renouf
94c88e340e [AMDGPU] add labels to +DumpCode output
Summary:
+DumpCode is a hack to embed disassembly in the ELF file. This commit
fixes it to include labels, to make it slightly more useful.

Reviewers: arsenm, kzhuravl

Subscribers: nhaehnle, timcorringham, dstuttard, llvm-commits, t-tye, yaxunl, wdng, kzhuravl

Differential Revision: https://reviews.llvm.org/D40169

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320146 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 14:09:34 +00:00
Gadi Haber
8cfd6d0425 [X86][Haswell]: Updating the scheduling information for the Haswell subtarget.
Updated the scheduling information for the Haswell subtarget with the following changes:

Regrouped the instructions after adding appropriate load + store latencies.
Added scheduling for missing instructions such as the GATHER instrs.
The changes were made after revisiting the latencies impact of all memory uOps.

Reviewers: RKSimon, zvi, craig.topper, apilipenko
Differential Revision: https://reviews.llvm.org/D40021

Change-Id: Iaf6c1f5169add1552845a8a566af4e5a359217a7

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320137 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 09:48:44 +00:00
Craig Topper
db8960471a [X86] Always consider inserting a vXi1 vector into the lsbs of a zero vector to be legal during lowering. Add isel patterns to emit shifts.
Previously we only allowed these through if the subvector came from a compare or test instruction which we would again check for during isel.

With this change we only check for the compare and test instructions during isel and have fallback patterns that emit the shifts if needed.

I noticed that in a lot of cases we don't actually see the compare during lowering and rely on an odd legalization of concat_vectors with a zero vector as the second argument. This keeps the concat_vectors around long enough for a later dag combine to expose the compare then we re-legalize the concat_vectors and catch the compare.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320134 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 08:10:58 +00:00
Abderrazek Zaafrani
94240acddc [AArch64] Avoid SIMD interleaved store instruction for Exynos.
Replace interleaved store instructions by equivalent and more efficient instructions based on latency cost model.
Https://reviews.llvm.org/D38196

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320123 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 00:58:49 +00:00
Derek Schuff
ed1cb75099 Revert "[WebAssemby] Support main functions with alternate signatures."
This reverts commit 959e37e669.
That commit doesn't handle the case where main is declared rather than defined,
in particular the even-more special case where main is a prototypeless
declaration (which is of course the one actually used by musl currently).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320121 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 00:39:54 +00:00
Craig Topper
b04a69212c [X86] Handle alls version of vXi1 insert_vector_elt with a constant index without falling back to shuffles.
We previously only supported inserting to the LSB or MSB where it was easy to zero to perform an OR to insert.

This change effectively extracts the old value and the new value, xors them together and then xors that single bit with the correct location in the original vector. This will cancel out the old value in the first xor leaving the new value in the position.

The way I've implemented this uses 3 shifts and two xors and uses an additional register. We can avoid the additional register at the cost of another shift.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320120 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 00:16:09 +00:00
Craig Topper
6de276ed69 [X86] Fix indentation. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320119 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-08 00:15:57 +00:00
Alina Sbirlea
c94e896e67 [ModRefInfo] Make enum ModRefInfo an enum class [NFC].
Summary:
Make enum ModRefInfo an enum class. Changes to ModRefInfo values should
be done using inline wrappers.
This should prevent future bit-wise opearations from being added, which can be more error-prone.

Reviewers: sanjoy, dberlin, hfinkel, george.burgess.iv

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D40933

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320107 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 22:41:34 +00:00
Eric Christopher
491343d2fa Temporarily revert "[PowerPC] Allow tail calls of fastcc functions from C CallingConv functions."
It is causing sanitizer failures on llvm tests in a bootstrapped compiler. No bot link since it's currently down, but following up to get the bot up.

This reverts commit r319218.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320106 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 22:26:19 +00:00
Jessica Paquette
c297153c36 [MachineOutliner] Fix offset overflow check
The offset overflow check before was incorrect. It would always give the
correct result, but it was comparing the SCALED potential fixed-up offset
against an UNSCALED minimum/maximum. As a result, the outliner was missing a
bunch of frame setup/destroy instructions that ought to have been safe to
outline. This fixes that, and adds an instruction to the .mir test that
failed the old test.
  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320090 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 21:51:43 +00:00
Mark Searles
82e0652b95 [AMDGPU] Revert "[AMDGPU] Add options for waitcnt pass debugging; add instr count in debug output."
Patch caused a buildbot failure; http://lab.llvm.org:8011/builders/lld-x86_64-darwin13/builds/15733/steps/build_Lld/logs/stdio :
lib/Target/AMDGPU/SIInsertWaitcnts.cpp:396:11: error: private field 'InstCnt' is not used [-Werror,-Wunused-private-field]
  int32_t InstCnt = 0;
          ^
1 error generated.
"
This reverts commit 71627f7901.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320086 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 21:14:41 +00:00
Mark Searles
71627f7901 [AMDGPU] Add options for waitcnt pass debugging; add instr count in debug output.
-amdgpu-waitcnt-forcezero={1|0}  Force all waitcnt instrs to be emitted as s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
-amdgpu-waitcnt-forceexp=<n>  Force emit a s_waitcnt expcnt(0) before the first <n> instrs
-amdgpu-waitcnt-forcelgkm=<n> Force emit a s_waitcnt lgkmcnt(0) before the first <n> instrs
-amdgpu-waitcnt-forcevm=<n>   Force emit a s_waitcnt vmcnt(0) before the first <n> instrs

Differential Revision: https://reviews.llvm.org/D40091

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320084 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 20:36:39 +00:00
Mark Searles
5e07001873 [AMDGPU] Add GCNHazardRecognizer::checkInlineAsmHazards() and GCNHazardRecognizer::checkVALUHazardsHelper(). checkInlineAsmHazards() checks INLINEASM for hazards that we particularly care about (so not exhaustive); this patch adds a check for INLINEASM that defs vregs that hold data-to-be stored by immediately preceding store of more than 8 bytes. If the instr were not within an INLINEASM, this scenario would be handled by checkVALUHazard(). Add checkVALUHazardsHelper(), which will be called by both checkVALUHazards() and checkInlineAsmHazards().
Differential Revision: https://reviews.llvm.org/D40098

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320083 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 20:34:25 +00:00
Craig Topper
0d51b66397 [X86] Fix InsertBitToMaskVector to only issue KSHIFTS of native size so that upper bits are properly zeroed.
There's no v2i1 or v4i1 kshift, and v8i1 is only supported with AVXDQ. Isel has fake patterns to extend these types to native shifts, but makes no guarantees about the value of any bits shifted in when shifting right.

This patch promotes the vector to a type that supports a native shift first and only allows inserting into the msb of a native sized shift.

I've constructed this in a way that doesn't do the promotion if we're going to fallback to using a xmm/ymm/zmm shuffle. I think I have a plan to remove the shuffle fall back entirely. In which case we this can be simplified, but I wanted to fix the correctness issue first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320081 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 20:10:04 +00:00
Craig Topper
db4e07a1a3 [X86] Fix typo in variable name. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320080 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 20:10:01 +00:00
Craig Topper
69ac482538 [X86] Make a couple helper lowering methods static.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320079 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 20:09:55 +00:00
Simon Pilgrim
d4f9d4476c [X86] Replace tabs with spaces. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320065 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 17:55:19 +00:00
Simon Pilgrim
e94aa96401 [X86] Tag BMI/BMI2/TBM instructions scheduler classes
Put these under UNARY/BINOP ALU itinerary classes for now - seems to be a good average value

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320064 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 17:37:39 +00:00
Krzysztof Parzyszek
b58d30229d [Hexagon] Generate HVX code for basic arithmetic operations
Handle and, or, xor, add, sub, mul for vectors of i8, i16, and i32.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320063 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 17:37:28 +00:00
Simon Pilgrim
cb541e30a7 [X86] Tag SALC instructions scheduler class
Treat these the same as LAHF/SAHF (although its not a x86_64 instruction)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320055 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 16:07:06 +00:00
Simon Pilgrim
1fdf5464f9 [X86][VMX] Tag VMX instructions scheduler classes
Tagged all as system instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320053 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 15:57:32 +00:00
Simon Pilgrim
a3ea5549cc [X86] Tag LZCNT/TZCNT instructions scheduler classes
Tagged as IMUL instructions for a reasonable approximation (ALU tends to be a lot faster) - POPCNT is currently tagged as FAdd which I think should be replaced with IMUL as well

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320051 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 15:24:14 +00:00
Simon Pilgrim
0604a7251a [X86][SVM] Tag SVM instructions scheduler classes
Tagged all as system instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320047 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 14:35:17 +00:00
Simon Pilgrim
1306edd491 [X86] Tag RDRAND/RDSEED instruction scheduler classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320045 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 14:18:48 +00:00
Simon Pilgrim
7cda6b5087 [X86][X87] X87 math binop pseudo instructions don't need scheduling info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320044 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 14:07:18 +00:00
Simon Pilgrim
f6ae903704 [X86][SSE42] SSE42 string pseudo instructions don't need scheduling info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320043 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 13:52:07 +00:00
Dan Gohman
959e37e669 [WebAssemby] Support main functions with alternate signatures.
WebAssembly requires caller and callee signatures to match, so the usual
C runtime trick of calling main and having it just work regardless of
whether main is defined as '()' or '(int argc, char *argv[])' doesn't
work. Extend the FixFunctionBitcasts pass to rewrite main to use the
latter form.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320041 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 13:49:27 +00:00
Alex Bradbury
662992daec [RISCV] MC layer support for the jump/branch instructions of the RVC extension
Differential Revision: https://reviews.llvm.org/D40002
    
Patch by Shiva Chen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320038 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 13:19:57 +00:00
Alex Bradbury
a73fa87189 [RISCV] MC layer support for load/store instructions of the C (compressed) extension
Differential Revision: https://reviews.llvm.org/D40001
    
Patch by Shiva Chen.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320037 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 12:50:32 +00:00
Alex Bradbury
499f980e9e [RISCV][NFC] Use TargetRegisterClass::hasSubClassEq in storeRegToStackSlot/loadReadFromStackSlot
Simply checking for register class equality will break once additional 
register classes are added (as is done for the RVC instruction set extension).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320036 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 12:45:05 +00:00
Nikolai Bozhenov
846e43e490 [Nios2] final infrastructure to provide compilation of a return from a function
This patch includes all missing functionality needed to provide first
compilation of a simple program that just returns from a function.
I've added a test case that checks for "ret" instruction printed in assembly
output.

Patch by Andrei Grischenko (andrei.l.grischenko@intel.com)
Differential revision: https://reviews.llvm.org/D39688


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320035 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 12:35:02 +00:00
Andrew V. Tischenko
b21bd46f2d Add proper BTVER2 sched support for MOV instr.
Differential Revision: https://reviews.llvm.org/D40345


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320034 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 11:19:49 +00:00
Alex Bradbury
28971c218e [RISCV] MC layer support for the standard RV64D instruction set extension
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320029 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 11:04:18 +00:00
Alex Bradbury
804ebee732 [RISCV] MC layer support for the standard RV64F instruction set extension
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320028 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 11:02:55 +00:00
Alex Bradbury
29d7ea3694 [RISCV] MC layer support for the standard RV64A instruction set extension
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320027 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:59:12 +00:00
Alex Bradbury
94253b3050 [RISCV] MC layer support for the standard RV64M instruction set extension
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320026 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:56:07 +00:00
Alex Bradbury
06535b0f5a [RISCV] MC layer support for the standard RV64I instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320024 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:53:48 +00:00
Alex Bradbury
42a025965e [RISCV] MC layer support for the standard RV32D instruction set extension
As the FPR32 and FPR64 registers have the same names, use 
validateTargetOperandClass in RISCVAsmParser to coerce a parsed FPR32 to an 
FPR64 when necessary. The rest of this patch is very similar to the RV32F 
patch.

Differential Revision: https://reviews.llvm.org/D39895


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320023 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:46:23 +00:00
Francis Visoiu Mistrih
fd11bc0813 [CodeGen] Use MachineOperand::print in the MIRPrinter for MO_Register.
Work towards the unification of MIR and debug output by refactoring the
interfaces.

For MachineOperand::print, keep a simple version that can be easily called
from `dump()`, and a more complex one which will be called from both the
MIRPrinter and MachineInstr::print.

Add extra checks inside MachineOperand for detached operands (operands
with getParent() == nullptr).

https://reviews.llvm.org/D40836

* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/kill: ([^ ]+) ([^ ]+)<def> ([^ ]+)/kill: \1 def \2 \3/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/kill: ([^ ]+) ([^ ]+) ([^ ]+)<def>/kill: \1 \2 def \3/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/kill: def ([^ ]+) ([^ ]+) ([^ ]+)<def>/kill: def \1 \2 def \3/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/<def>//g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<kill>/killed \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<imp-use,kill>/implicit killed \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<dead>/dead \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<def[ ]*,[ ]*dead>/dead \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<imp-def[ ]*,[ ]*dead>/implicit-def dead \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<imp-def>/implicit-def \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<imp-use>/implicit \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<internal>/internal \1/g'
* find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" -o -name "*.s" \) -type f -print0 | xargs -0 sed -i '' -E 's/([^ ]+)<undef>/undef \1/g'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320022 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:40:31 +00:00
Alex Bradbury
e65af32d44 [RISCV] MC layer support for the standard RV32F instruction set extension
The most interesting part of this patch is probably the handling of 
rounding mode arguments. Sadly, the RISC-V assembler handles floating point 
rounding modes as a special "argument" when it would be more consistent to 
handle them like the atomics, opcode suffixes. This patch supports parsing 
this optional parameter, using InstAlias to allow parsing these floating point 
instructions when no rounding mode is specified.

Differential Revision: https://reviews.llvm.org/D39893


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320020 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 10:26:05 +00:00