diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-20 16:22:59 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-20 16:22:59 +0000 |
commit | e0bb3e766d977d129da6add3bad6793ca20ab151 (patch) | |
tree | 4b5f16e3ece7d311d0c937d52bb3b3bfbbf978db /lib/Target/X86/X86CodeEmitter.cpp | |
parent | ef56a197edf546d320b33577b128e803e86f7e0d (diff) | |
download | external_llvm-e0bb3e766d977d129da6add3bad6793ca20ab151.tar.gz external_llvm-e0bb3e766d977d129da6add3bad6793ca20ab151.tar.bz2 external_llvm-e0bb3e766d977d129da6add3bad6793ca20ab151.zip |
Remove floating point killer pass. This is now implemented in the
instruction selector by adding a new pseudo-instruction
FP_REG_KILL. This instruction implicitly defines all x86 fp registers
and is a terminator so that passes which add machine code at the end
of basic blocks (like phi elimination) do not add instructions between
it and the branch or return instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10562 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86CodeEmitter.cpp')
-rw-r--r-- | lib/Target/X86/X86CodeEmitter.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Target/X86/X86CodeEmitter.cpp b/lib/Target/X86/X86CodeEmitter.cpp index c3f1461db3..13e9d762f5 100644 --- a/lib/Target/X86/X86CodeEmitter.cpp +++ b/lib/Target/X86/X86CodeEmitter.cpp @@ -493,7 +493,9 @@ void Emitter::emitInstruction(MachineInstr &MI) { switch (Desc.TSFlags & X86II::FormMask) { default: assert(0 && "Unknown FormMask value in X86 MachineCodeEmitter!"); case X86II::Pseudo: - if (Opcode != X86::IMPLICIT_USE && Opcode != X86::IMPLICIT_DEF) + if (Opcode != X86::IMPLICIT_USE && + Opcode != X86::IMPLICIT_DEF && + Opcode != X86::FP_REG_KILL) std::cerr << "X86 Machine Code Emitter: No 'form', not emitting: " << MI; break; |