- Dec 17, 2007
-
-
Christopher Lamb authored
Change the PointerType api for creating pointer types. The old functionality 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
-
Christopher Lamb authored
Make it clear in the LangRef that allocation instructions only operated on the generic address space. Implement support in the verifier for ensuring this is true. llvm-svn: 45080
-
- Dec 16, 2007
-
-
Duncan Sands authored
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
-
- Dec 14, 2007
-
-
Anders Carlsson authored
All MMX shift instructions took a <2 x i32> vector as the shift amount parameter. Change this to be <1 x i64> instead, which matches the assembler instruction. llvm-svn: 45027
-
- Dec 12, 2007
-
-
Duncan Sands authored
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
-
Gordon Henriksen authored
llvm-svn: 44899
-
- Dec 11, 2007
-
-
Christopher Lamb authored
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
-
Chris Lattner authored
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
-
Chris Lattner authored
llvm-svn: 44850
-
Chris Lattner authored
llvm-svn: 44849
-
- Dec 10, 2007
-
-
Chris Lattner authored
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
-
Gordon Henriksen authored
llvm-svn: 44775
-
Gordon Henriksen authored
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
-
Gordon Henriksen authored
_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
-
Chris Lattner authored
llvm-svn: 44756
-
Chris Lattner authored
llvm-svn: 44755
-
- Dec 09, 2007
-
-
Gordon Henriksen authored
llvm-svn: 44747
-
- Dec 05, 2007
-
-
Duncan Sands authored
not yet clear why, but in the meantime work around the problem by making less use of readnone/readonly info. llvm-svn: 44626
-
- Dec 03, 2007
-
-
Duncan Sands authored
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
-
- Nov 30, 2007
-
-
Duncan Sands authored
llvm-svn: 44458
-
Duncan Sands authored
attributes. While there, I noticed that not all attribute methods returned a pointer-to-constant, so I fixed that. llvm-svn: 44457
-
Duncan Sands authored
function parameters. llvm-svn: 44452
-
- Nov 29, 2007
-
-
Duncan Sands authored
llvm-svn: 44433
-
- Nov 28, 2007
-
-
Duncan Sands authored
use them. llvm-svn: 44403
-
- Nov 27, 2007
-
-
Duncan Sands authored
the function type, instead they belong to functions and function calls. This is an updated and slightly corrected version of Reid Spencer's original patch. The only known problem is that auto-upgrading of bitcode files doesn't seem to work properly (see test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully a bitcode guru (who might that be? :) ) will fix it. llvm-svn: 44359
-
- Nov 25, 2007
-
-
Duncan Sands authored
trivial difference in function attributes, allow calls to it to be converted to direct calls. Based on a patch by Török Edwin. While there, move the various lists of mutually incompatible parameters etc out of the verifier and into ParameterAttributes.h. llvm-svn: 44315
-
- Nov 22, 2007
-
-
Duncan Sands authored
and the 'pure' parameter attribute to 'readonly'. Names suggested by DannyB. llvm-svn: 44273
-
- Nov 20, 2007
-
-
Duncan Sands authored
any sense it is important that ParamAttr::None gets treated the same as not supplying an attribute at all. Rather than stripping ParamAttr::None out of the list of attributes, assert if ParamAttr::None is seen. Fix up the bitcode reader which liked to insert ParamAttr::None all over the place. Patch based on one by Török Edwin. llvm-svn: 44250
-
- Nov 19, 2007
-
-
Dan Gohman authored
llvm-svn: 44240
-
- Nov 18, 2007
-
-
Chris Lattner authored
call x86_fastcallcc void @func( i32* %X, i64 0 ) not: callx86_fastcallcc void @func( i32* %X, i64 0 ) This fixes Codegen/X86/fast-cc-merge-stack-adj.ll llvm-svn: 44217
-
- Nov 17, 2007
-
-
Nate Begeman authored
llvm-svn: 44204
-
- Nov 15, 2007
-
-
Nate Begeman authored
llvm-svn: 44181
-
- Nov 14, 2007
-
-
Duncan Sands authored
llvm-svn: 44139
-
Duncan Sands authored
llvm-svn: 44116
-
Anton Korobeynikov authored
llvm-svn: 44109
-
- Nov 01, 2007
-
-
Duncan Sands authored
doing something - this needs to work for release builds too. I chose to just abort rather than following the fancy logic of abortIfBroken, because (1) it is a pain to do otherwise, and (2) nothing is going to work if the module is this broken. llvm-svn: 43611
-
Chris Lattner authored
a command line optn. llvm-svn: 43603
-
Owen Anderson authored
llvm-svn: 43601
-
Chris Lattner authored
(in hindsight) infinite recursion. Simplify the code. llvm-svn: 43597
-
- Oct 31, 2007
-
-
Dan Gohman authored
by r43510. Gracefully handle constants with vector type that aren't ConstantVector or ConstantAggregateZero. llvm-svn: 43579
-