llvm-6502/lib/VMCore
Chandler Carruth ccbf1e36d3 Switch llvm.cttz and llvm.ctlz to accept a second i1 parameter which
indicates whether the intrinsic has a defined result for a first
argument equal to zero. This will eventually allow these intrinsics to
accurately model the semantics of GCC's __builtin_ctz and __builtin_clz
and the X86 instructions (prior to AVX) which implement them.

This patch merely sets the stage by extending the signature of these
intrinsics and establishing auto-upgrade logic so that the old spelling
still works both in IR and in bitcode. The upgrade logic preserves the
existing (inefficient) semantics. This patch should not change any
behavior. CodeGen isn't updated because it can use the existing
semantics regardless of the flag's value.

Note that this will be followed by API updates to Clang and DragonEgg.

Reviewed by Nick Lewycky!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146357 91177308-0d34-0410-b5e6-96231b3b80d8
2011-12-12 04:26:04 +00:00
..
AsmWriter.cpp Add dump method for debugging. 2011-12-09 23:18:34 +00:00
Attributes.cpp Add the returns_twice attribute to LLVM. 2011-10-03 14:45:37 +00:00
AutoUpgrade.cpp Switch llvm.cttz and llvm.ctlz to accept a second i1 parameter which 2011-12-12 04:26:04 +00:00
BasicBlock.cpp Add getFirstInsertionPt() method. 2011-08-16 20:42:52 +00:00
CMakeLists.txt build/CMake: Finish removal of add_llvm_library_dependencies. 2011-11-29 19:25:30 +00:00
ConstantFold.cpp Return undef value (instead of arbitrary) for wrong or undef index in 2011-09-02 17:01:40 +00:00
ConstantFold.h Convert ConstantFoldGetElementPtr to use ArrayRef. 2011-07-19 15:30:30 +00:00
Constants.cpp Add support for vectors of pointers. 2011-12-05 06:29:09 +00:00
ConstantsContext.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
Core.cpp ocaml bindings: add getopcode for constant and instruction, and int64_of_const. 2011-10-14 20:37:49 +00:00
DebugInfoProbe.cpp Revert unintentional check-in. 2011-06-24 20:48:14 +00:00
DebugLoc.cpp Spacing. 2011-10-11 22:58:58 +00:00
Dominators.cpp
Function.cpp Refactor code from inlining and globalopt that checks whether a function definition is unused, and enhance it so it can tell that functions which are only used by a blockaddress are in fact dead. This probably doesn't happen much on most code, but the Linux kernel's _THIS_IP_ can trigger this issue with blockaddress. (GlobalDCE can also handle the given tescase, but we only run that at -O3.) Found while looking at PR11180. 2011-10-20 05:23:42 +00:00
GCOV.cpp Put GCOVFile and other related interface in a common header so that llvm-cov tool can share it with GCOV writer. 2011-10-04 17:24:48 +00:00
Globals.cpp Micro-optimisation in getAliasedGlobal. 2011-08-01 12:28:01 +00:00
GVMaterializer.cpp
InlineAsm.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
Instruction.cpp Make isSafeToSpeculativelyExecute() return the right answer for some new instructions. Found by inspection; not sure what practical impact, if any, this has. 2011-09-01 21:03:03 +00:00
Instructions.cpp Add support for vectors of pointers. 2011-12-05 06:29:09 +00:00
IntrinsicInst.cpp
IRBuilder.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
LeakDetector.cpp
LeaksContext.h
LLVMBuild.txt build: Add initial cut at LLVMBuild.txt files. 2011-11-03 18:53:17 +00:00
LLVMContext.cpp Add a pinned metadata name for fpaccuracy, and document it 2011-10-27 19:19:14 +00:00
LLVMContextImpl.cpp bump pointer allocate LLVM IR types, since they are never deallocated. 2011-07-15 05:49:15 +00:00
LLVMContextImpl.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
Makefile Build system infrastructure for multiple tblgens. 2011-10-06 01:51:51 +00:00
Metadata.cpp Push StringRefs through the metadata interface. 2011-12-06 11:50:26 +00:00
Module.cpp Remove the last improper use of getGlobalContext() from LLVM. 2011-08-13 01:04:44 +00:00
Pass.cpp Devirtualize Pass::getPassID, overriding it isn't useful and it gets called a lot. 2011-11-24 21:14:11 +00:00
PassManager.cpp Let printf do the formatting instead aligning strings ourselves. 2011-10-16 16:30:34 +00:00
PassRegistry.cpp Cosmetic changes, as per Nick's review. 2011-09-29 16:46:47 +00:00
PrintModulePass.cpp
SymbolTableListTraitsImpl.h
Type.cpp Add support for vectors of pointers. 2011-12-05 06:29:09 +00:00
Use.cpp Remove the AugmentedUse struct. 2011-06-20 14:12:33 +00:00
User.cpp Add some missing anchors. 2011-12-01 08:00:17 +00:00
Value.cpp Add a little heuristic to Value::isUsedInBasicBlock to speed it up for small basic blocks. 2011-12-05 17:23:27 +00:00
ValueSymbolTable.cpp eliminate the Type::getDescription() method, using "<<" instead. This 2011-06-18 21:18:23 +00:00
ValueTypes.cpp Rename MVT::untyped to MVT::Untyped to match similar nomenclature. 2011-11-16 01:02:57 +00:00
Verifier.cpp Add support for vectors of pointers. 2011-12-05 06:29:09 +00:00