| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
patch brings numerous advantages to LLVM. One way to look at it
is through diffstat:
109 files changed, 3005 insertions(+), 5906 deletions(-)
Removing almost 3K lines of code is a good thing. Other advantages
include:
1. Value::getType() is a simple load that can be CSE'd, not a mutating
union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
uniques them. This means that the compiler doesn't merge them structurally
which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead
"const Type *" everywhere.
Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.
"LLVM 3.0" is the right time to do this.
There are still some cleanups pending after this, this patch is large enough
as-is.
llvm-svn: 134829
|
|
|
|
|
|
| |
removes some gunk from LLVMContext.
llvm-svn: 133360
|
|
|
|
| |
llvm-svn: 124486
|
|
|
|
|
|
| |
location was stated with FFI_INCLUDE_DIR/FFI_LIBRARY_DIR.
llvm-svn: 124449
|
|
|
|
|
|
| |
Patch by arrowdodger!
llvm-svn: 123976
|
|
|
|
| |
llvm-svn: 120298
|
|
|
|
|
|
| |
static methods that return a new APInt.
llvm-svn: 120261
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit r113632
Conflicts:
cmake/modules/AddLLVM.cmake
llvm-svn: 113819
|
|
|
|
| |
llvm-svn: 113632
|
|
|
|
| |
llvm-svn: 108130
|
|
|
|
|
|
| |
Fix from Russel Power in PR7284.
llvm-svn: 106271
|
|
|
|
| |
llvm-svn: 102827
|
|
|
|
| |
llvm-svn: 100709
|
|
|
|
| |
llvm-svn: 99918
|
|
|
|
| |
llvm-svn: 99886
|
|
|
|
|
|
| |
external Functions (the JIT does honour this).
llvm-svn: 99885
|
|
|
|
|
|
|
| |
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
|
|
|
|
|
|
| |
isInteger, we now have isFloatTy and isIntegerTy. Requested by Chris!
llvm-svn: 96223
|
|
|
|
| |
llvm-svn: 94746
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
|
|
|
| |
llvm-svn: 94378
|
|
|
|
|
|
|
|
|
|
|
| |
missing ones are libsupport, libsystem and libvmcore. libvmcore is
currently blocked on bugpoint, which uses EH. Once it stops using
EH, we can switch it off.
This #if 0's out 3 unit tests, because gtest requires RTTI information.
Suggestions welcome on how to fix this.
llvm-svn: 94164
|
|
|
|
|
|
| |
dereference the type pointer.
llvm-svn: 92726
|
|
|
|
| |
llvm-svn: 92673
|
|
|
|
| |
llvm-svn: 92618
|
|
|
|
| |
llvm-svn: 92616
|
|
|
|
| |
llvm-svn: 89198
|
|
|
|
|
|
|
| |
libffi support and that the interpreter can't call external functions without
it. Patch by Timo Juhani Lindfors! Fixes PR5466.
llvm-svn: 89062
|
|
|
|
| |
llvm-svn: 86458
|
|
|
|
|
|
| |
native anyways. This fixes a crash using %d and similar in a scanf statement.
llvm-svn: 86440
|
|
|
|
| |
llvm-svn: 86428
|
|
|
|
|
|
|
| |
now correctly runs clang's test/CodeGen/indirect-goto.c. The JIT will abort
on it until someone feels compelled to implement this.
llvm-svn: 85488
|
|
|
|
|
|
|
| |
Remove LowerAllocations pass.
Update some more passes to treate free calls just like they were treating FreeInst.
llvm-svn: 85176
|
|
|
|
|
|
| |
direct inclusion edge from System to Support.
llvm-svn: 85086
|
|
|
|
|
|
| |
subclass of AllocationInst, so it no longer is necessary.
llvm-svn: 84969
|
|
|
|
|
|
|
|
| |
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
llvm-svn: 83297
|
|
|
|
| |
llvm-svn: 82225
|
|
|
|
| |
llvm-svn: 82100
|
|
|
|
| |
llvm-svn: 79842
|
|
|
|
| |
llvm-svn: 79823
|
|
|
|
|
|
| |
This required converting a bunch of stuff off DOUT and other cleanups.
llvm-svn: 79819
|
|
|
|
| |
llvm-svn: 78948
|
|
|
|
| |
llvm-svn: 78848
|
|
|
|
| |
llvm-svn: 78405
|
|
|
|
|
|
| |
like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:".
llvm-svn: 77971
|
|
|
|
| |
llvm-svn: 76962
|
|
|
|
| |
llvm-svn: 76786
|
|
|
|
|
|
|
|
| |
EE::create().
Also a test commit.
llvm-svn: 76276
|
|
|
|
|
|
|
|
|
| |
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
|
|
|
|
|
|
|
|
|
| |
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
|