| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
llvm-svn: 45529
|
| |
|
|
| |
llvm-svn: 45528
|
| |
|
|
|
|
|
| |
refcount on these correctly, and can end up referring to deleted
attributes. This fixes PR1881.
llvm-svn: 45525
|
| |
|
|
|
|
| |
get a profile.
llvm-svn: 45524
|
| |
|
|
| |
llvm-svn: 45519
|
| |
|
|
|
|
|
| |
own file. Don't #include ParameterAttributes.h into any major
public header files: just move methods out of line as appropriate.
llvm-svn: 45517
|
| |
|
|
| |
llvm-svn: 45512
|
| |
|
|
| |
llvm-svn: 45506
|
| |
|
|
|
|
| |
Patch by Bryan O'Sullivan!
llvm-svn: 45481
|
| |
|
|
| |
llvm-svn: 45450
|
| |
|
|
| |
llvm-svn: 45418
|
| |
|
|
| |
llvm-svn: 45415
|
| |
|
|
| |
llvm-svn: 45369
|
| |
|
|
| |
llvm-svn: 45367
|
| |
|
|
|
|
|
|
|
| |
function with GC.
This will catch the error when the inliner inlines a function with
GC into a caller with no GC.
llvm-svn: 45350
|
| |
|
|
|
|
| |
LangRef.
llvm-svn: 45349
|
| |
|
|
|
|
|
|
|
|
| |
as on functions. Make it verify invokes and not just
ordinary calls. As a (desired) side-effect, it is no
longer legal to have call attributes on arguments that
are being passed to the varargs part of a varargs
function (llvm-as drops them on the floor anyway).
llvm-svn: 45286
|
| |
|
|
|
|
| |
to exceptions rather than variants for error handling in Ocaml.
llvm-svn: 45226
|
| |
|
|
|
|
|
|
|
| |
calls 'nounwind'. It is important for correct C++
exception handling that nounwind markings do not get
lost, so this transformation is actually needed for
correctness.
llvm-svn: 45218
|
| |
|
|
| |
llvm-svn: 45163
|
| |
|
|
|
|
| |
doesNotThrow.
llvm-svn: 45160
|
| |
|
|
|
|
| |
table! Thanks to Gordon Henriksen for pointing this out.
llvm-svn: 45147
|
| |
|
|
| |
llvm-svn: 45140
|
| |
|
|
|
|
| |
it's auto-upgraded to a shufflevector instruction.
llvm-svn: 45131
|
| |
|
|
|
|
|
|
| |
how to lower them (with no attempt made to be
efficient, since they should only occur for
unoptimized code).
llvm-svn: 45108
|
| |
|
|
|
|
| |
for Ocaml-based compilers targeting embedded devices. :)
llvm-svn: 45096
|
| |
|
|
|
|
| |
of PointerType::get() has become PointerType::getUnqual(), which returns a pointer in the generic address space. The new prototype of PointerType::get() requires both a type and an address space.
llvm-svn: 45082
|
| |
|
|
|
|
| |
the generic address space. Implement support in the verifier for ensuring this is true.
llvm-svn: 45080
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
calls. Remove special casing of inline asm from the
inliner. There is a potential problem: the verifier
rejects invokes of inline asm (not sure why). If an
asm call is not marked "nounwind" in some .ll, and
instcombine is not run, but the inliner is run, then
an illegal module will be created. This is bad but
I'm not sure what the best approach is. I'm tempted
to remove the check in the verifier...
llvm-svn: 45073
|
| |
|
|
|
|
| |
parameter. Change this to be <1 x i64> instead, which matches the assembler instruction.
llvm-svn: 45027
|
| |
|
|
|
|
|
|
|
|
| |
and readnone for functions with bodies because it
broke llvm-gcc-4.2 bootstrap. It turns out that,
because of LLVM's array_ref hack, gcc was computing
pure/const attributes wrong (now fixed by turning
off the gcc ipa-pure-const pass).
llvm-svn: 44937
|
| |
|
|
| |
llvm-svn: 44899
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
regions of memory that have a target specific relationship, as described in the
Embedded C Technical Report.
This also implements the 2007-12-11-AddressSpaces test,
which demonstrates how address space attributes can be used in LLVM IR.
In addition, this patch changes the bitcode signature for stores (in a backwards
compatible manner), such that the pointer type, rather than the pointee type, is
encoded. This permits type information in the pointer (e.g. address space) to be
preserved for stores.
LangRef updates are forthcoming.
llvm-svn: 44858
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This allows us to compile:
#include <emmintrin.h>
typedef __m128i VSInt16;
typedef short vSInt16 __attribute__ ((__vector_size__ (16)));
VSInt16 t3() {
return (VSInt16)((vSInt16)_mm_set1_epi16(6518));
}
into:
_t3:
movaps LCPI1_0, %xmm0
ret
instead of:
_t3:
movl $6518, %eax
movd %eax, %xmm0
pextrw $0, %xmm0, %eax
xorps %xmm0, %xmm0
pinsrw $0, %eax, %xmm0
punpcklwd %xmm0, %xmm0
pshufd $0, %xmm0, %xmm0
ret
llvm-svn: 44856
|
| |
|
|
| |
llvm-svn: 44850
|
| |
|
|
| |
llvm-svn: 44849
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
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
|
| |
|
|
|
|
|
| |
not yet clear why, but in the meantime work around the
problem by making less use of readnone/readonly info.
llvm-svn: 44626
|
| |
|
|
|
|
|
|
|
| |
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
|
| |
|
|
| |
llvm-svn: 44458
|
| |
|
|
|
|
|
|
| |
attributes. While there, I noticed that not all
attribute methods returned a pointer-to-constant,
so I fixed that.
llvm-svn: 44457
|
| |
|
|
|
|
| |
function parameters.
llvm-svn: 44452
|
| |
|
|
| |
llvm-svn: 44433
|
| |
|
|
|
|
| |
use them.
llvm-svn: 44403
|