llvm-6502/lib/Target/AArch64
Daniel Sanders 38c6b58eec Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call
Summary:
AsmPrinter::EmitInlineAsm() will no longer use the EmitRawText() call for
targets with mature MC support. Such targets will always parse the inline
assembly (even when emitting assembly). Targets without mature MC support
continue to use EmitRawText() for assembly output.

The hasRawTextSupport() check in AsmPrinter::EmitInlineAsm() has been replaced
with MCAsmInfo::UseIntegratedAs which when true, causes the integrated assembler
to parse inline assembly (even when emitting assembly output). UseIntegratedAs
is set to true for targets that consider any failure to parse valid assembly
to be a bug. Target specific subclasses generally enable the integrated
assembler in their constructor. The default value can be overridden with
-no-integrated-as.

All tests that rely on inline assembly supporting invalid assembly (for example,
those that use mnemonics such as 'foo' or 'hello world') have been updated to
disable the integrated assembler.

Changes since review (and last commit attempt):
- Fixed test failures that were missed due to configuration of local build.
  (fixes crash.ll and a couple others).
- Fixed tests that happened to pass because the local build was on X86
  (should fix 2007-12-17-InvokeAsm.ll)
- mature-mc-support.ll's should no longer require all targets to be compiled.
  (should fix ARM and PPC buildbots)
- Object output (-filetype=obj and similar) now forces the integrated assembler
  to be enabled regardless of default setting or -no-integrated-as.
  (should fix SystemZ buildbots)

Reviewers: rafael

Reviewed By: rafael

CC: llvm-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2686



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@201333 91177308-0d34-0410-b5e6-96231b3b80d8
2014-02-13 14:44:26 +00:00
..
AsmParser [AArch64] Handle aliases of conditional branches without b.pred form. 2014-02-10 15:43:11 +00:00
Disassembler Remove unnecessary include of AArch64GenInstrInfo.inc from AArch64Disassembler.cpp. None of the GET_ defines were set that would make the include do anything. 2014-02-03 06:33:17 +00:00
InstPrinter Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
MCTargetDesc Re-commit: Demote EmitRawText call in AsmPrinter::EmitInlineAsm() and remove hasRawTextSupport() call 2014-02-13 14:44:26 +00:00
TargetInfo Prune redundant dependencies in LLVMBuild.txt. 2013-12-11 00:30:57 +00:00
Utils Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64.h
AArch64.td Add Cortex-A53 and Cortex-A57 cores to the AArch64 backend 2014-02-13 09:46:11 +00:00
AArch64AsmPrinter.cpp Change MCStreamer EmitInstruction interface to take subtarget info 2014-01-28 23:12:42 +00:00
AArch64AsmPrinter.h
AArch64BranchFixupPass.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64CallingConv.td [AArch64] Removed unnecessary copy patterns with v1fx types. 2013-12-12 15:46:29 +00:00
AArch64FrameLowering.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64FrameLowering.h
AArch64InstrFormats.td
AArch64InstrInfo.cpp [AArch64]Add support for spilling FPR8/FPR16. 2014-02-13 02:36:58 +00:00
AArch64InstrInfo.h Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64InstrInfo.td [AArch64] Check fmul node single use in fused multiply patterns 2013-12-24 00:47:29 +00:00
AArch64InstrNEON.td [AArch64]Fix the problems that can't select mul/add/sub of v1i8/v1i16/v1i32 types. 2014-02-13 05:42:33 +00:00
AArch64ISelDAGToDAG.cpp [AArch64 NEON]Implment loading vector constant form constant pool. 2013-12-18 06:26:04 +00:00
AArch64ISelLowering.cpp [AArch64] Custom lower concat_vector patterns with v4i16, v4i32, v8i8, v8i16, v16i8 types. 2014-01-30 21:46:54 +00:00
AArch64ISelLowering.h [AArch64 NEON] Try to generate CONCAT_VECTOR when lowering BUILD_VECTOR or SHUFFLE_VECTOR. 2014-01-27 02:53:54 +00:00
AArch64MachineFunctionInfo.cpp
AArch64MachineFunctionInfo.h
AArch64MCInstLower.cpp Move the llvm mangler to lib/IR. 2014-01-07 21:19:40 +00:00
AArch64RegisterInfo.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64RegisterInfo.h
AArch64RegisterInfo.td [AArch64] Removed unused i8 type from FPR8 register class. 2014-01-24 22:36:53 +00:00
AArch64Schedule.td
AArch64SelectionDAGInfo.cpp
AArch64SelectionDAGInfo.h
AArch64Subtarget.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64Subtarget.h
AArch64TargetMachine.cpp Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
AArch64TargetMachine.h
AArch64TargetObjectFile.cpp Make sure -use-init-array has intended effect on all AArch64 ELF targets, not just linux. 2014-01-10 13:41:49 +00:00
AArch64TargetObjectFile.h Make sure -use-init-array has intended effect on all AArch64 ELF targets, not just linux. 2014-01-10 13:41:49 +00:00
CMakeLists.txt [CMake] Let add_public_tablegen_target responsible to provide dependency to CommonTableGen. 2013-11-28 17:04:04 +00:00
LLVMBuild.txt Add proper dependencies to LLVMBuild.txt in llvm/lib. 2013-12-10 05:39:34 +00:00
Makefile
README.txt

This file will contain changes that need to be made before AArch64 can become an
officially supported target. Currently a placeholder.