llvm-6502/include/llvm/IR
David Blaikie 93a23a3bd4 Recommit r235458: [opaque pointer type] Avoid using PointerType::getElementType for a few cases of CallInst
(reverted in r235533)

Original commit message:

"Calls to llvm::Value::mutateType are becoming extra-sensitive now that
instructions have extra type information that will not be derived from
operands or result type (alloca, gep, load, call/invoke, etc... ). The
special-handling for mutateType will get more complicated as this work
continues - it might be worth making mutateType virtual & pushing the
complexity down into the classes that need special handling. But with
only two significant uses of mutateType (vectorization and linking) this
seems OK for now.

Totally open to ideas/suggestions/improvements, of course.

With this, and a bunch of exceptions, we can roundtrip an indirect call
site through bitcode and IR. (a direct call site is actually trickier...
I haven't figured out how to deal with the IR deserializer's lazy
construction of Function/GlobalVariable decl's based on the type of the
entity which means looking through the "pointer to T" type referring to
the global)"

The remapping done in ValueMapper for LTO was insufficient as the types
weren't correctly mapped (though I was using the post-mapped operands,
some of those operands might not have been mapped yet so the type
wouldn't be post-mapped yet). Instead use the pre-mapped type and
explicitly map all the types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@235651 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-23 21:36:23 +00:00
..
Argument.h
AssemblyAnnotationWriter.h
Attributes.h [IR] Introduce a dereferenceable_or_null(N) attribute. 2015-04-16 20:29:50 +00:00
AutoUpgrade.h
BasicBlock.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
CallingConv.h
CallSite.h Recommit r235458: [opaque pointer type] Avoid using PointerType::getElementType for a few cases of CallInst 2015-04-23 21:36:23 +00:00
CFG.h
CMakeLists.txt
Comdat.h
Constant.h
ConstantFolder.h [opaque pointer types] Push explicit type parameter for geps through the constant folders 2015-04-03 01:15:16 +00:00
ConstantRange.h
Constants.h IR: Add ConstantFP::getNaN() 2015-04-20 19:38:24 +00:00
DataLayout.h
DebugInfo.h DebugInfo: Remove DIArray and DITypeArray typedefs 2015-04-21 20:07:38 +00:00
DebugInfoFlags.def
DebugInfoMetadata.h DebugInfo: Remove typedefs for DITypeRef, etc. 2015-04-20 18:20:03 +00:00
DebugLoc.h DebugInfo: Allow DebugLocs to be constructed from const 2015-04-16 16:56:29 +00:00
DerivedTypes.h
DiagnosticInfo.h
DiagnosticPrinter.h
DIBuilder.h DebugInfo: Remove DIArray and DITypeArray typedefs 2015-04-21 20:07:38 +00:00
Dominators.h
Function.h [IR] Introduce a dereferenceable_or_null(N) attribute. 2015-04-16 20:29:50 +00:00
GetElementPtrTypeIterator.h
GlobalAlias.h
GlobalObject.h Add some type safety to GlobalObject/GlobalValue - they're always PointerTypes so let's type them that way. 2015-04-06 18:06:06 +00:00
GlobalValue.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
GlobalVariable.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
GVMaterializer.h Fix PR23045. 2015-03-30 21:36:43 +00:00
InlineAsm.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
InstIterator.h
InstrTypes.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Instruction.def
Instruction.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Instructions.h Recommit r235458: [opaque pointer type] Avoid using PointerType::getElementType for a few cases of CallInst 2015-04-23 21:36:23 +00:00
InstVisitor.h
IntrinsicInst.h
Intrinsics.h
Intrinsics.td [WinEH] Sink UnwindHelp completely out of IR 2015-04-03 22:32:26 +00:00
IntrinsicsAArch64.td
IntrinsicsARM.td
IntrinsicsBPF.td [bpf] add support for bpf pseudo instruction 2015-03-27 18:51:42 +00:00
IntrinsicsHexagon.td
IntrinsicsMips.td
IntrinsicsNVVM.td
IntrinsicsPowerPC.td Add LLVM support for remaining integer divide and permute instructions from ISA 2.06 2015-04-09 23:54:37 +00:00
IntrinsicsR600.td
IntrinsicsSystemZ.td [SystemZ] Support transactional execution on zEC12 2015-04-01 12:51:43 +00:00
IntrinsicsX86.td AVX-512: Added logical and arithmetic instructions for SKX 2015-04-21 10:27:40 +00:00
IntrinsicsXCore.td
IRBuilder.h Add the i128 builtin type to LLVM. 2015-04-17 15:32:15 +00:00
IRPrintingPasses.h uselistorder: Pull the bit through PrintModulePass 2015-04-15 02:38:06 +00:00
LegacyPassManager.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LegacyPassManagers.h
LegacyPassNameParser.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
LLVMContext.h
Mangler.h
MDBuilder.h
Metadata.def
Metadata.h Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
MetadataTracking.h
Module.h uselistorder: Pull the assembly bit up out of the printer 2015-04-15 02:12:41 +00:00
NoFolder.h [opaque pointer types] Push explicit type parameter for geps through the constant folders 2015-04-03 01:15:16 +00:00
OperandTraits.h
Operator.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
PassManager.h
PassManagerInternal.h
PatternMatch.h [InstCombine][CodeGenPrep] Create llvm.uadd.with.overflow in CGP. 2015-04-10 21:07:09 +00:00
PredIteratorCache.h Revamp PredIteratorCache interface to be cleaner. 2015-04-21 21:11:50 +00:00
Statepoint.h
SymbolTableListTraits.h
TrackingMDRef.h
Type.h Add the i128 builtin type to LLVM. 2015-04-17 15:32:15 +00:00
TypeBuilder.h Update comment. NFC. 2015-04-21 21:15:35 +00:00
TypeFinder.h
Use.h
UseListOrder.h uselistorder: Remove the global bits 2015-04-15 03:14:06 +00:00
User.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
Value.h Move Value.isDereferenceablePointer to ValueTracking [NFC] 2015-04-23 17:36:48 +00:00
ValueHandle.h
ValueMap.h [Mips] Use unique_ptr to manage ownership. 2015-04-16 12:43:33 +00:00
ValueSymbolTable.h
Verifier.h