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 Encode the multi-load/store instructions with their respective modes ('ia', 2010-11-16 01:16:36 +00:00
ARMDecoderEmitter.h
AsmMatcherEmitter.cpp pass literals like $$1 through to the asm matcher. This isn't right yet, but doesn't hurt. 2010-11-06 22:06:03 +00:00
AsmMatcherEmitter.h
AsmWriterEmitter.cpp
AsmWriterEmitter.h
AsmWriterInst.cpp factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00
AsmWriterInst.h
CallingConvEmitter.cpp In the calling convention logic, ValVT is always a legal type, 2010-11-04 10:49:57 +00:00
CallingConvEmitter.h
ClangASTNodesEmitter.cpp
ClangASTNodesEmitter.h
ClangAttrEmitter.cpp
ClangAttrEmitter.h
ClangDiagnosticsEmitter.cpp
ClangDiagnosticsEmitter.h
CMakeLists.txt
CodeEmitterGen.cpp pull the code to get the operand value out of the loop. 2010-11-15 07:09:28 +00:00
CodeEmitterGen.h split the giant encoder loop into two new helper functions. 2010-11-15 06:59:17 +00:00
CodeGenDAGPatterns.cpp factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00
CodeGenDAGPatterns.h
CodeGenInstruction.cpp Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
CodeGenInstruction.h Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
CodeGenIntrinsics.h
CodeGenRegisters.h add (and document) the ability for alias results to have 2010-11-06 19:57:21 +00:00
CodeGenTarget.cpp a bunch of random cleanup, move a helper to CGT where it belongs. 2010-11-02 18:10:06 +00:00
CodeGenTarget.h a bunch of random cleanup, move a helper to CGT where it belongs. 2010-11-02 18:10:06 +00:00
DAGISelEmitter.cpp
DAGISelEmitter.h
DAGISelMatcher.cpp
DAGISelMatcher.h
DAGISelMatcherEmitter.cpp
DAGISelMatcherGen.cpp factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00
DAGISelMatcherOpt.cpp
DisassemblerEmitter.cpp
DisassemblerEmitter.h
EDEmitter.cpp Proper encoding for VLDM and VSTM instructions. The register lists for these 2010-11-17 04:32:08 +00:00
EDEmitter.h
FastISelEmitter.cpp factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00
FastISelEmitter.h
InstrEnumEmitter.cpp
InstrEnumEmitter.h
InstrInfoEmitter.cpp Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
InstrInfoEmitter.h
IntrinsicEmitter.cpp Rename AccessesArguments and AccessesArgumentsReadonly, and rewrite 2010-11-10 18:30:00 +00:00
IntrinsicEmitter.h
LLVMCConfigurationEmitter.cpp
LLVMCConfigurationEmitter.h
Makefile
NeonEmitter.cpp Use new neon_vector_type and neon_polyvector_type attributes for Neon vectors. 2010-11-16 23:57:06 +00:00
NeonEmitter.h
OptParserEmitter.cpp
OptParserEmitter.h
Record.cpp
Record.h
RegisterInfoEmitter.cpp
RegisterInfoEmitter.h
StringMatcher.cpp fix a fixme in stringmatcher, having it generate nice looking code if the 2010-10-30 19:57:17 +00:00
StringMatcher.h
StringToOffsetTable.h
SubtargetEmitter.cpp
SubtargetEmitter.h
TableGen.cpp
TableGenBackend.cpp
TableGenBackend.h
TGLexer.cpp
TGLexer.h
TGParser.cpp fix a crash on: 2010-10-31 19:27:15 +00:00
TGParser.h
TGValueTypes.cpp
X86DisassemblerShared.h
X86DisassemblerTables.cpp
X86DisassemblerTables.h
X86ModRMFilters.h
X86RecognizableInstr.cpp factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00
X86RecognizableInstr.h factor the operand list (and related fields/operations) out of 2010-11-01 04:03:32 +00:00