LLVM backend for 6502
Go to file
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
autoconf Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
bindings Fix llvm-config to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components. 2015-07-27 18:26:30 +00:00
cmake build: fix small typo in cmake doxygen build 2015-07-24 01:14:25 +00:00
docs DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
examples DI/Verifier: Fix argument bitrot in DILocalVariable 2015-07-24 23:59:25 +00:00
include [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type 2015-07-28 00:06:38 +00:00
lib [opaque pointer type] Avoid using pointee types to retrieve InlineAsm's function type 2015-07-28 00:06:38 +00:00
projects build: make libunwind a proper project 2015-04-25 01:47:39 +00:00
resources In MSVC builds embed a VERSIONINFO resource in our exe and DLL files. 2015-06-12 15:58:29 +00:00
test [LAA] Split out a helper to print a collection of memchecks 2015-07-27 23:54:41 +00:00
tools Fix llvm-config to emit the linker flag for the combined shared object built by autoconfig/make instead of the individual components. 2015-07-27 18:26:30 +00:00
unittests IR: Expose the method 'getLocalSlot' in the module slot tracker. 2015-07-27 22:31:04 +00:00
utils test-release.sh: Defer test errors until the end 2015-07-24 16:16:09 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore Minor updates to gitignore so that symlinks are ignored in the projects dir. 2015-07-07 20:24:58 +00:00
CMakeLists.txt Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
CODE_OWNERS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
configure Update the trunk version to 3.8.0svn. 2015-07-14 22:35:57 +00:00
CREDITS.TXT [WebAssembly] Initial WebAssembly backend 2015-06-29 23:51:55 +00:00
LICENSE.TXT
llvm.spec.in
LLVMBuild.txt
Makefile
Makefile.common
Makefile.config.in Disallow in-source builds (as we already do for the cmake build). 2015-07-01 18:09:21 +00:00
Makefile.rules
README.txt

Low Level Virtual Machine (LLVM)
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you're writing a package for LLVM, see docs/Packaging.rst for our
suggestions.