| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
per-function collector model. Collector is now the factory for
CollectorMetadata, so the latter may be subclassed.
llvm-svn: 44827
|
|
|
|
|
|
|
|
| |
don't have to #include config.h in it. #including config.h breaks
other projects that have their own autoconf stuff and try to #include
the llvm headers. One obscure example is llvm-gcc.
llvm-svn: 44825
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thompson. Usage should be something like this:
open Llvm
open Llvm_bitreader
match read_bitcode_file fn with
| Bitreader_failure msg ->
prerr_endline msg
| Bitreader_success m ->
...;
dispose_module m
Compile with: ocamlc llvm.cma llvm_bitreader.cma
ocamlopt llvm.cmxa llvm_bitreader.cmxa
llvm-svn: 44824
|
|
|
|
| |
llvm-svn: 44820
|
|
|
|
| |
llvm-svn: 44819
|
|
|
|
|
|
| |
Use it for Darwin.
llvm-svn: 44818
|
|
|
|
|
|
|
|
| |
Reimplement the xform in Analysis/ConstantFolding.cpp where we can use
targetdata to validate that it is safe. While I'm in there, fix some const
correctness issues and generalize the interface to the "operand folder".
llvm-svn: 44817
|
|
|
|
|
|
|
|
|
|
|
| |
These should probably be something like:
CFI(".cfi_def_cfa_offset 16\n")
where CFI is defined to a noop on darwin and other platforms
that don't support those directives.
llvm-svn: 44803
|
|
|
|
|
|
| |
on functions as it calculates them.
llvm-svn: 44802
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using the minimum possible number of bytes. For little
endian targets run on little endian machines, apints are
stored in memory from LSB to MSB as before. For big endian
targets on big endian machines they are stored from MSB to
LSB which wasn't always the case before (if the target and
host endianness doesn't match values are stored according
to the host's endianness). Doing this requires knowing the
endianness of the host, which is determined when configuring -
thanks go to Anton for this. Only having access to little
endian machines I was unable to properly test the big endian
part, which is also the most complicated...
llvm-svn: 44796
|
|
|
|
|
|
| |
All bad stuff from SSE version is implicitely inherited :)
llvm-svn: 44794
|
|
|
|
|
|
| |
broken, because doesn't mark xmm regs properly
llvm-svn: 44793
|
|
|
|
|
|
|
| |
This will allow us (theoretically) to unwind through JITer.
The code wasn't verified, so I'm pretty sure offsets are wrong :)
llvm-svn: 44792
|
|
|
|
|
|
| |
get it to compile.
llvm-svn: 44791
|
|
|
|
|
|
|
|
| |
sense of
how the CodeGen machinery works.
llvm-svn: 44786
|
|
|
|
|
|
| |
impact the value of fall-through choices.
llvm-svn: 44785
|
|
|
|
| |
llvm-svn: 44775
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
methods are new to Function:
bool hasCollector() const;
const std::string &getCollector() const;
void setCollector(const std::string &);
void clearCollector();
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
The implementation uses an on-the-side table to map Functions to
collector names, such that there is no overhead. A StringPool is
further used to unique collector names, which are extremely
likely to be unique per process.
llvm-svn: 44769
|
|
|
|
|
|
|
| |
_sabre_: it has a major problem: by the time ~Value is run, all of the "parts" of the derived classes have been destroyed
_sabre_: the vtable lives to fight another day
llvm-svn: 44760
|
|
|
|
| |
llvm-svn: 44756
|
|
|
|
|
|
| |
2007-11-19-InlineAsm.ll
llvm-svn: 44755
|
|
|
|
| |
llvm-svn: 44747
|
|
|
|
|
|
| |
knows the vector is not pow2
llvm-svn: 44740
|
|
|
|
| |
llvm-svn: 44733
|
|
|
|
| |
llvm-svn: 44728
|
|
|
|
| |
llvm-svn: 44727
|
|
|
|
|
|
| |
that LegalizeDAG does.
llvm-svn: 44726
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
%f8 = type <8 x float>
define void @test_f8(%f8* %P, %f8* %Q, %f8* %S) {
%p = load %f8* %P ; <%f8> [#uses=1]
%q = load %f8* %Q ; <%f8> [#uses=1]
%R = add %f8 %p, %q ; <%f8> [#uses=1]
store %f8 %R, %f8* %S
ret void
}
into:
_test_f8:
movaps 16(%rdi), %xmm0
addps 16(%rsi), %xmm0
movaps (%rdi), %xmm1
addps (%rsi), %xmm1
movaps %xmm0, 16(%rdx)
movaps %xmm1, (%rdx)
ret
llvm-svn: 44725
|
|
|
|
| |
llvm-svn: 44724
|
|
|
|
| |
llvm-svn: 44723
|
|
|
|
| |
llvm-svn: 44722
|
|
|
|
| |
llvm-svn: 44720
|
|
|
|
| |
llvm-svn: 44719
|
|
|
|
| |
llvm-svn: 44718
|
|
|
|
| |
llvm-svn: 44717
|
|
|
|
| |
llvm-svn: 44716
|
|
|
|
| |
llvm-svn: 44715
|
|
|
|
|
|
| |
Leave it visibility hidden, but not in an anon namespace.
llvm-svn: 44714
|
|
|
|
| |
llvm-svn: 44710
|
|
|
|
| |
llvm-svn: 44707
|
|
|
|
| |
llvm-svn: 44705
|
|
|
|
|
|
|
| |
what 'Available' is, please add a comment near it and rename it
if appropriate.
llvm-svn: 44703
|
|
|
|
|
|
|
| |
isTriviallyReMaterializable -> hasNoSideEffects
isReallyTriviallyReMaterializable -> isTriviallyReMaterializable
llvm-svn: 44702
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
a while ago. We now produce:
_foo:
mflr r0
std r0, 16(r1)
ld r2, 16(r1)
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
instead of:
_foo:
mflr r0
std r0, 16(r1)
lis r0, 0
ori r0, r0, 16
ldx r2, r1, r0
std r2, 0(r3)
ld r0, 16(r1)
mtlr r0
blr
for:
void foo(void **X) {
*X = __builtin_return_address(0);
}
on ppc64.
llvm-svn: 44701
|
|
|
|
| |
llvm-svn: 44700
|
|
|
|
|
|
|
| |
different places to mean different things. Document what the
one in PPCFunctionInfo means and when it is valid.
llvm-svn: 44699
|
|
|
|
|
|
|
| |
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056043.html
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071203/056048.html
llvm-svn: 44696
|
|
|
|
|
|
|
|
| |
some (disabled) debugging code
to make such problems easier to diagnose in the future, written by Duncan Sands.
llvm-svn: 44695
|
|
|
|
| |
llvm-svn: 44694
|
|
|
|
| |
llvm-svn: 44692
|