| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
|
| |
|
|
|
|
| |
spaces, shrink down includes and move some methods out-of-line
llvm-svn: 74817
|
| |
|
|
|
|
| |
cleanup, removed some #includes and moved Object Code Emitter out-of-line.
llvm-svn: 74813
|
| |
|
|
|
|
|
|
| |
one new .cpp file, in preparation for merging in the Direct Object Emission
changes we're working on. No functional changes.
Fixed coding style issues on the original patch. Patch by Aaron Gray
llvm-svn: 72754
|
| |
|
|
| |
llvm-svn: 72650
|
| |
|
|
|
|
|
| |
will make it more obvious what it represents, and stop
it being confused with the StoreSize.
llvm-svn: 71349
|
| |
|
|
|
|
| |
linkage, so remove it.
llvm-svn: 66690
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and extern_weak_odr. These are the same as the non-odr versions,
except that they indicate that the global will only be overridden
by an *equivalent* global. In C, a function with weak linkage can
be overridden by a function which behaves completely differently.
This means that IP passes have to skip weak functions, since any
deductions made from the function definition might be wrong, since
the definition could be replaced by something completely different
at link time. This is not allowed in C++, thanks to the ODR
(One-Definition-Rule): if a function is replaced by another at
link-time, then the new function must be the same as the original
function. If a language knows that a function or other global can
only be overridden by an equivalent global, it can give it the
weak_odr linkage type, and the optimizers will understand that it
is alright to make deductions based on the function body. The
code generators on the other hand map weak and weak_odr linkage
to the same thing.
llvm-svn: 66339
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that has not been JIT'd yet, the callee is put on a list of pending functions
to JIT. The call is directed through a stub, which is updated with the address
of the function after it has been JIT'd. A new interface for allocating and
updating empty stubs is provided.
Add support for removing the ModuleProvider the JIT was created with, which
would otherwise invalidate the JIT's PassManager, which is initialized with the
ModuleProvider's Module.
Add support under a new ExecutionEngine flag for emitting the infomration
necessary to update Function and GlobalVariable stubs after JITing them, by
recording the address of the stub and the name of the GlobalValue. This allows
code to be copied from one address space to another, where libraries may live
at different virtual addresses, and have the stubs updated with their new
correct target addresses.
llvm-svn: 64906
|
| |
|
|
| |
llvm-svn: 62279
|
| |
|
|
|
|
| |
suggested by Chris.
llvm-svn: 62099
|
| |
|
|
| |
llvm-svn: 61244
|
| |
|
|
|
|
| |
some overflow issues. Patch by Thomas Jablin.
llvm-svn: 60828
|
| |
|
|
|
|
| |
ptr.
llvm-svn: 58897
|
| |
|
|
|
|
|
| |
make it clearer what the function does. No functional
change.
llvm-svn: 57325
|
| |
|
|
| |
llvm-svn: 55779
|
| |
|
|
| |
llvm-svn: 55092
|
| |
|
|
|
|
| |
exclude struct and array types.
llvm-svn: 51459
|
| |
|
|
|
|
|
|
|
|
| |
are represented as "weak", but there are subtle differences
in some cases on Darwin, so we need both. The intent
is that "common" will behave identically to "weak" unless
somebody changes their target to do something else.
No functional change as yet.
llvm-svn: 51118
|
| |
|
|
|
|
|
|
| |
the memory manager which function
the stub will resolve.
llvm-svn: 49814
|
| |
|
|
|
|
|
|
| |
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
llvm-svn: 48256
|
| |
|
|
|
|
| |
annoying warnings.
llvm-svn: 47367
|
| |
|
|
| |
llvm-svn: 47079
|
| |
|
|
|
|
|
| |
to get the alignment of global variables, rather than
using hand-made versions.
llvm-svn: 46495
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
should only effect x86 when using long double. Now
12/16 bytes are output for long double globals (the
exact amount depends on the alignment). This brings
globals in line with the rest of LLVM: the space
reserved for an object is now always the ABI size.
One tricky point is that only 10 bytes should be
output for long double if it is a field in a packed
struct, which is the reason for the additional
argument to EmitGlobalConstant.
llvm-svn: 43688
|
| |
|
|
|
|
|
| |
Next round of x87 long double stuff.
Getting close now, basically works.
llvm-svn: 41875
|
| |
|
|
|
|
|
|
|
| |
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).
llvm-svn: 41858
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double. Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)
llvm-svn: 41747
|
| |
|
|
| |
llvm-svn: 36662
|
| |
|
|
|
|
|
| |
Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652
|
| |
|
|
| |
llvm-svn: 36632
|
| |
|
|
| |
llvm-svn: 34903
|
| |
|
|
| |
llvm-svn: 34875
|
| |
|
|
| |
llvm-svn: 34741
|
| |
|
|
| |
llvm-svn: 34740
|
| |
|
|
|
|
|
| |
Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and
PackedTyID -> VectorTyID. No functional changes.
llvm-svn: 34293
|
| |
|
|
|
|
| |
Patch by Scott Michel.
llvm-svn: 34266
|
| |
|
|
| |
llvm-svn: 34161
|
| |
|
|
| |
llvm-svn: 34156
|
| |
|
|
| |
llvm-svn: 34031
|
| |
|
|
|
|
|
|
|
| |
based on the alignment of the symbol and the target data's preferred align
for that type.
Also, rename some arguments for consistency.
llvm-svn: 33984
|
| |
|
|
| |
llvm-svn: 33816
|
| |
|
|
| |
llvm-svn: 33629
|
| |
|
|
|
|
| |
scattered relocations.
llvm-svn: 33555
|
| |
|
|
|
|
| |
Writer" for the pass name.
llvm-svn: 33483
|
| |
|
|
| |
llvm-svn: 33478
|
| |
|
|
|
|
| |
these alignment amounts to align scalars when we can. Patch by Scott Michel!
llvm-svn: 33409
|
| |
|
|
| |
llvm-svn: 33316
|