llvm/lib
David Blaikie 04180d08db [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type
As a stop-gap, retrieving the InlineAsm's function type was done via the
pointee type of its (pointer) Value type.

Instead, pass down and store the FunctionType in the InlineAsm object.

The only wrinkle with this is the ConstantUniqueMap, which then needs to
ferry the FunctionType down through the InlineAsmKeyType. This could be
done a bit differently if the ConstantInfo trait were broadened a bit to
provide an extension point for access to the TypeClass object from the
ValType objects, so that the ConstantUniqueMap<InlineAsm> would then be
keyed on FunctionTypes instead of PointerTypes that point to
FunctionTypes.

This drops the number of IR tests that don't roundtrip through bitcode*
without calling PointerType::getElementType from 416 to 8 (out of
10733). 3 of those crash when roundtripping at ToT anyway.

* modulo various unavoidable uses of pointer types when validating IR
  (for now) and in the way globals are parsed, unfortunately. These
  cases will either go away (because such validation will no longer be
  necessary or possible when pointee types are opaque), or have to be
  made simultaneously with the removal of pointee types.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243356 91177308-0d34-0410-b5e6-96231b3b80d8
2015-07-28 00:06:38 +00:00
..
Analysis [LAA] Split out a helper to print a collection of memchecks 2015-07-27 23:54:41 +00:00
AsmParser [opaque pointers] Avoid the use of pointee types when parsing inline asm in IR 2015-07-27 23:32:19 +00:00
Bitcode
CodeGen MIR Serialization: Serialize the unnamed basic block references. 2015-07-27 22:42:41 +00:00
DebugInfo
ExecutionEngine Fix ODR violation. NFC. 2015-07-27 18:27:23 +00:00
Fuzzer [libFuzzer] allow users to supply their own implementation of rand 2015-07-24 01:06:40 +00:00
IR [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type 2015-07-28 00:06:38 +00:00
IRReader
LibDriver
LineEditor
Linker
LTO Remove access to the DataLayout in the TargetMachine 2015-07-24 16:04:22 +00:00
MC [llvm-mc] Add --no-warn flag with -W alias to disable outputting warnings while assembling. 2015-07-27 22:39:14 +00:00
Object Fix fetching the symbol table of a thin archive. 2015-07-22 19:34:26 +00:00
Option
Passes
ProfileData
Support - Added support for parsing HWDiv features using Target Parser. 2015-07-27 22:26:59 +00:00
TableGen [TableGen] Emit the correct error message. 2015-07-27 17:22:19 +00:00
Target WebAssembly: add a generic CPU 2015-07-27 23:25:54 +00:00
Transforms [LSR] Generate and use zero extends 2015-07-27 23:27:51 +00:00
CMakeLists.txt
LLVMBuild.txt
Makefile