llvm-6502/include/llvm
Tom Stellard 898b9f020d TableGen: Generate a function for getting operand indices based on their defined names
This patch modifies TableGen to generate a function in
${TARGET}GenInstrInfo.inc called getNamedOperandIdx(), which can be used
to look up indices for operands based on their names.

In order to activate this feature for an instruction, you must set the
UseNamedOperandTable bit.

For example, if you have an instruction like:

def ADD : TargetInstr <(outs GPR:$dst), (ins GPR:$src0, GPR:$src1)>;

You can look up the operand indices using the new function, like this:

Target::getNamedOperandIdx(Target::ADD, Target::OpName::dst)  => 0
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src0) => 1
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src1) => 2

The operand names are case sensitive, so $dst and $DST are considered
different operands.

This change is useful for R600 which has instructions with a large number
of operands, many of which model single bit instruction configuration
values.  These configuration bits are common across most instructions,
but may have a different operand index depending on the instruction type.
It is useful to have a convenient way to look up the operand indices,
so these bits can be generically set on any instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184879 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-25 21:22:09 +00:00
..
ADT [APFloat] Added support for parsing float strings which contain {inf,-inf,NaN,-NaN}. 2013-06-24 09:58:05 +00:00
Analysis BlockFrequency: Bump up the entry frequency a bit. 2013-06-25 13:34:40 +00:00
Assembly Enable *BasicBlockPass::createPrinterPass() 2013-02-08 23:37:41 +00:00
Bitcode Move lib/Archive to tools/llvm-ar. 2013-06-17 15:47:20 +00:00
CodeGen Improve diagnostics when getSizeInBits is called on the Other type. 2013-06-24 17:29:51 +00:00
Config Don't define LTDL_SHLIBPATH_VAR. 2013-06-11 19:04:13 +00:00
DebugInfo llvm-dwarfdump: Add support for dumping the .debug_loc section 2013-06-19 21:37:13 +00:00
ExecutionEngine Pass a StringRef to sys::identifyFileType. 2013-06-10 15:27:39 +00:00
IR add Function::removeFnAttr() 2013-06-21 07:38:09 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
MC [PowerPC] Support @got modifier 2013-06-25 16:49:50 +00:00
Object [PowerPC] Support @got modifier 2013-06-25 16:49:50 +00:00
Option Merge changes to clang's Driver code into LLVM's Option library 2013-06-13 18:12:12 +00:00
Support [PowerPC] Support @got modifier 2013-06-25 16:49:50 +00:00
TableGen Make sure TableGen exits with an error code after printing errors. 2013-03-20 20:43:11 +00:00
Target TableGen: Generate a function for getting operand indices based on their defined names 2013-06-25 21:22:09 +00:00
Transforms Add a flag to defer vectorization into a phase after the inliner and its 2013-06-24 07:21:47 +00:00
AutoUpgrade.h
CMakeLists.txt Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DebugInfo.h DebugInfo: enumerator values returned as int64 as they are stored 2013-06-24 07:11:08 +00:00
DIBuilder.h DebugInfo: DIBuilder changes to match DIEnumerator changes in r184694 2013-06-24 17:34:33 +00:00
GVMaterializer.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
InitializePasses.h Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
InstVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LinkAllIR.h Rename LinkAllVMCore.h to LinkAllIR.h since VMCore directory was renamed to IR. 2013-01-10 21:55:02 +00:00
LinkAllPasses.h Remove the simplify-libcalls pass (finally) 2013-06-20 19:48:07 +00:00
Linker.h Fix a performance bug in the Linker. 2013-05-04 05:05:18 +00:00
Pass.h moves doInitialization and doFinalization to the Pass class and removes some unreachable code in MachineModuleInfo 2012-12-03 21:56:57 +00:00
PassAnalysisSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PassManager.h This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
PassManagers.h Use a DenseMap instead of a std::map for AnalysisID -> Pass* maps. This reduces the pass-manager overhead from FPPassManager::runOnFunction() by about 10%. 2013-02-26 01:31:59 +00:00
PassRegistry.h This patch breaks up Wrap.h so that it does not have to include all of 2013-05-01 20:59:00 +00:00
PassSupport.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00