llvm-6502/include/llvm
Chandler Carruth 63974b2144 Initial CodeGen support for CTTZ/CTLZ where a zero input produces an
undefined result. This adds new ISD nodes for the new semantics,
selecting them when the LLVM intrinsic indicates that the undef behavior
is desired. The new nodes expand trivially to the old nodes, so targets
don't actually need to do anything to support these new nodes besides
indicating that they should be expanded. I've done this for all the
operand types that I could figure out for all the targets. Owners of
various targets, please review and let me know if any of these are
incorrect.

Note that the expand behavior is *conservatively correct*, and exactly
matches LLVM's current behavior with these operations. Ideally this
patch will not change behavior in any way. For example the regtest suite
finds the exact same instruction sequences coming out of the code
generator. That's why there are no new tests here -- all of this is
being exercised by the existing test suite.

Thanks to Duncan Sands for reviewing the various bits of this patch and
helping me get the wrinkles ironed out with expanding for each target.
Also thanks to Chris for clarifying through all the discussions that
this is indeed the approach he was looking for. That said, there are
likely still rough spots. Further review much appreciated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146466 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-13 01:56:10 +00:00
..
ADT Hexagon backend support 2011-12-12 21:14:40 +00:00
Analysis Change the Dominators recalculate() function to only rely on GraphTraits 2011-12-05 19:17:04 +00:00
Assembly
Bitcode Begin sketching out a bitcode verifier pass. Idea is to emit a .bc file and 2011-12-12 22:57:31 +00:00
CodeGen Initial CodeGen support for CTTZ/CTLZ where a zero input produces an 2011-12-13 01:56:10 +00:00
Config
DebugInfo
ExecutionEngine ExecutionEngine: refactor interface 2011-12-12 04:20:36 +00:00
MC The second part of support for generating dwarf for assembly source files. This 2011-12-09 18:09:40 +00:00
Object
Support Hexagon backend support 2011-12-12 21:14:40 +00:00
TableGen
Target Initial CodeGen support for CTTZ/CTLZ where a zero input produces an 2011-12-13 01:56:10 +00:00
Transforms SplitBlockPredecessors uses ArrayRef instead of Data and Size. 2011-12-09 21:19:53 +00:00
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h
CallGraphSCCPass.h
CallingConv.h
CMakeLists.txt
Constant.h
Constants.h
DebugInfoProbe.h
DefaultPasses.h
DerivedTypes.h
Function.h
GlobalAlias.h
GlobalValue.h
GlobalVariable.h
GVMaterializer.h
InitializePasses.h Kill off the LoopSplitter. It's not being used or maintained. 2011-12-06 01:57:59 +00:00
InlineAsm.h
InstrTypes.h
Instruction.def
Instruction.h Push StringRefs through the metadata interface. 2011-12-06 11:50:26 +00:00
Instructions.h
IntrinsicInst.h
Intrinsics.h
Intrinsics.td Hexagon backend support 2011-12-12 21:14:40 +00:00
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsHexagon.td Hexagon backend support 2011-12-12 21:14:40 +00:00
IntrinsicsPowerPC.td
IntrinsicsPTX.td
IntrinsicsX86.td
IntrinsicsXCore.td
LinkAllPasses.h All these arguments are default anyways. 2011-12-06 00:11:58 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h
Metadata.h Add dump method for debugging. 2011-12-09 23:18:34 +00:00
Module.h
OperandTraits.h
Operator.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h Add Tsan annotations to the pass system. 2011-12-08 00:15:41 +00:00
SymbolTableListTraits.h
Type.h
Use.h
User.h
Value.h
ValueSymbolTable.h