llvm-6502/utils/TableGen
Evan Cheng c4af4638df Remove ARM isel hacks that fold large immediates into a pair of add, sub, and,
and xor. The 32-bit move immediates can be hoisted out of loops by machine
LICM but the isel hacks were preventing them.

Instead, let peephole optimization pass recognize registers that are defined by
immediates and the ARM target hook will fold the immediates in.

Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ
instructions if there are multiple uses. This happens when the 'and' is live
out, machine sink would have sinked the computation and that ends up pessimizing
code. The peephole pass would recognize situations where the 'and' can be
toggled to define CPSR and eliminate the comparison anyway.

2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking
important optimizations.

rdar://8663787, rdar://8241368


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119548 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-17 20:13:28 +00:00
..
ARMDecoderEmitter.cpp
ARMDecoderEmitter.h
AsmMatcherEmitter.cpp
AsmMatcherEmitter.h
AsmWriterEmitter.cpp
AsmWriterEmitter.h
AsmWriterInst.cpp
AsmWriterInst.h
CallingConvEmitter.cpp
CallingConvEmitter.h
ClangASTNodesEmitter.cpp
ClangASTNodesEmitter.h
ClangAttrEmitter.cpp
ClangAttrEmitter.h
ClangDiagnosticsEmitter.cpp
ClangDiagnosticsEmitter.h
CMakeLists.txt
CodeEmitterGen.cpp
CodeEmitterGen.h
CodeGenDAGPatterns.cpp
CodeGenDAGPatterns.h
CodeGenInstruction.cpp
CodeGenInstruction.h
CodeGenIntrinsics.h
CodeGenRegisters.h
CodeGenTarget.cpp
CodeGenTarget.h
DAGISelEmitter.cpp
DAGISelEmitter.h
DAGISelMatcher.cpp
DAGISelMatcher.h
DAGISelMatcherEmitter.cpp
DAGISelMatcherGen.cpp
DAGISelMatcherOpt.cpp
DisassemblerEmitter.cpp
DisassemblerEmitter.h
EDEmitter.cpp
EDEmitter.h
FastISelEmitter.cpp
FastISelEmitter.h
InstrEnumEmitter.cpp
InstrEnumEmitter.h
InstrInfoEmitter.cpp
InstrInfoEmitter.h
IntrinsicEmitter.cpp
IntrinsicEmitter.h
LLVMCConfigurationEmitter.cpp
LLVMCConfigurationEmitter.h
Makefile
NeonEmitter.cpp
NeonEmitter.h
OptParserEmitter.cpp
OptParserEmitter.h
Record.cpp
Record.h
RegisterInfoEmitter.cpp
RegisterInfoEmitter.h
StringMatcher.cpp
StringMatcher.h
StringToOffsetTable.h
SubtargetEmitter.cpp
SubtargetEmitter.h
TableGen.cpp
TableGenBackend.cpp
TableGenBackend.h
TGLexer.cpp
TGLexer.h
TGParser.cpp
TGParser.h
TGValueTypes.cpp
X86DisassemblerShared.h
X86DisassemblerTables.cpp
X86DisassemblerTables.h
X86ModRMFilters.h
X86RecognizableInstr.cpp
X86RecognizableInstr.h