1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2025-01-31 20:51:52 +01:00

408 Commits

Author SHA1 Message Date
Chris Lattner
53fa6e3f6b new non-ambiguous syntax.
llvm-svn: 61559
2009-01-02 07:02:56 +00:00
Nick Lewycky
8f96b51785 Resubmit support for the 'nocapture' attribute.
The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
without breaking existing users or the file format.

This change will require users to rebuild llvm-gcc to match llvm.

llvm-svn: 61239
2008-12-19 06:39:12 +00:00
Bill Wendling
f807a68f2e Temporarily revert r61019, r61030, and r61040. These were breaking LLVM Release
builds.

llvm-svn: 61094
2008-12-16 19:06:48 +00:00
Nick Lewycky
8bdae4db80 Introducing nocapture, a parameter attribute for pointers to indicate that the
callee will not introduce any new aliases of that pointer.

The attributes had all bits allocated already, so I decided to collapse
alignment. Alignment was previously stored as a 16-bit integer from bits 16 to
32 of the attribute, but it was required to be a power of 2. Now it's stored in
log2 encoded form in five bits from 16 to 21. That gives us 11 more bits of
space.

You may have already noticed that you only need four bits to encode a 16-bit
power of two, so why five bits? Because the AsmParser accepted 32-bit
alignments, even though we couldn't store them (they were silently discarded).
Now we can store them in memory, but not in the bitcode.

The bitcode format was already storing these as 64-bit VBR integers. So, the
bitcode format stays the same, keeping the alignment values stored as 16 bit
raw values. There's some hideous code in the reader and writer that deals with
this, waiting to be ripped out the moment we run out of bits again and have to
replace the parameter attributes table encoding.

llvm-svn: 61019
2008-12-15 01:34:58 +00:00
Misha Brukman
74411f221b Global replace of yellow W3C "valid HTML/CSS" icons with blue ones.
llvm-svn: 60880
2008-12-11 17:34:48 +00:00
Mon P Wang
5f031c6120 Added a little more information that vector shifts require vector shift amount.
llvm-svn: 60831
2008-12-10 08:55:09 +00:00
Mon P Wang
0c011f8ba9 Fix getNode to allow a vector for the shift amount for shifts of vectors.
Fix the shift amount when unrolling a vector shift into scalar shifts.
Fix problem in getShuffleScalarElt where it assumes that the input of
a bit convert must be a vector.

llvm-svn: 60740
2008-12-09 05:46:39 +00:00
Misha Brukman
54dad5f940 Fixed HTML closing tag, cleaned up some spacing.
llvm-svn: 60153
2008-11-27 06:41:20 +00:00
Bill Wendling
d8a4b1ec05 Small formatting change.
llvm-svn: 60113
2008-11-26 19:19:05 +00:00
Bill Wendling
cdc91a5f09 Update to explain how ssp and sspreq attributes override each other.
llvm-svn: 60112
2008-11-26 19:07:40 +00:00
Dan Gohman
83971772a6 Fix a few HTML tidiness issues.
llvm-svn: 59966
2008-11-24 17:18:39 +00:00
Torok Edwin
c120302836 NULL, unique pointers from malloc(0), and freed pointers are legal values for
noalias attribute parameters/return values.

llvm-svn: 59955
2008-11-24 08:02:24 +00:00
Nick Lewycky
b8b082166a Seriously strengthen the guarantee offered by noalias on a function's return
value. It must now be as if the pointer were allocated and has not escaped to
the caller. Thanks to Dan Gohman for pointing out the error in the original
and helping devise this definition.

llvm-svn: 59940
2008-11-24 05:00:44 +00:00
Nick Lewycky
47fa9bd187 Extend the 'noalias' attribute to function return values. This is intended to
indicate functions that allocate, such as operator new, or list::insert. The
actual definition is slightly less strict (for now).

No changes to the bitcode reader/writer, asm printer or verifier were needed.

llvm-svn: 59934
2008-11-24 03:41:24 +00:00
Misha Brukman
2fc3f5daa5 Fixed named anchor for llvm.stackprotector intrinsic.
llvm-svn: 59893
2008-11-22 23:55:29 +00:00
Chris Lattner
08bdf9dfab reapply Sanjiv's patch to genericize memcpy/memset/memmove to take an
arbitrary integer width for the count.

llvm-svn: 59823
2008-11-21 16:42:48 +00:00
Bill Wendling
4c5afef830 Revert r59802. It was breaking the build of llvm-gcc:
g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic'
make[3]: *** [llvm-convert.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2

llvm-svn: 59809
2008-11-21 09:09:41 +00:00
Sanjiv Gupta
89a7e67578 Make mem[cpy,move,set] intrinsics overloaded.
llvm-svn: 59802
2008-11-21 07:49:09 +00:00
Bill Wendling
797dcb3ef7 - Move the stackprotector intrinsic to the general section.
- Rewrite the sentence to make it look as if English is my first language.

llvm-svn: 59592
2008-11-19 05:56:17 +00:00
Bill Wendling
99744090d6 Documentation for the llvm.stackprotector intrinsic.
llvm-svn: 59557
2008-11-18 22:10:53 +00:00
Bill Wendling
58ebe90530 Update docs for ssp and sspreq function attributes.
llvm-svn: 59203
2008-11-13 01:02:51 +00:00
Mon P Wang
911ee5bf8b Added support for the following definition of shufflevector
<result> = shufflevector <n x <ty>> <v1>, <n x <ty>> <v2>, <m x i32> <mask> 

llvm-svn: 58964
2008-11-10 04:46:22 +00:00
Daniel Dunbar
e11e618cc6 Prevent assert when using '"' in names (via hexadecimal).
Update LangRef to mention \xx quoting in names.

llvm-svn: 57538
2008-10-14 23:51:43 +00:00
Dan Gohman
75d70feb9b Fix missing end tags and invalid HTML entity syntax.
llvm-svn: 57500
2008-10-14 16:51:45 +00:00
Dan Gohman
7227e51b8d Add a missing close-tag.
llvm-svn: 57497
2008-10-14 16:32:04 +00:00
Chris Lattner
5dffd42d1b fix some crazily long lines.
llvm-svn: 57444
2008-10-13 16:55:18 +00:00
Matthijs Kooijman
5d8f1a58b3 Improve the description on the getelementptr instruction. It should now better
define what the instruction does. This also makes it clear that getelementptr
can index into a vector type.

llvm-svn: 57440
2008-10-13 13:44:15 +00:00
Chris Lattner
7320e36e54 fix typo
llvm-svn: 57287
2008-10-08 06:26:11 +00:00
Devang Patel
782e55a101 Improve function definition, call and invoke instruction docs.
llvm-svn: 57253
2008-10-07 17:48:33 +00:00
Matthijs Kooijman
311f8e7dca Add two forgotten </i>'s.
llvm-svn: 57239
2008-10-07 10:03:45 +00:00
Devang Patel
797d5155ba Update function attributes docs.
llvm-svn: 57197
2008-10-06 18:50:38 +00:00
Duncan Sands
559ddbafc0 Clarify the relationship between byval and readonly/
readnone.  Make clearer that readnone functions do not
dereference pointer arguments.  Do not use the highly
ambiguous "side-effects" in the readonly description
(since such functions can have control flow side-effects,
such as throwing an exception, or looping for ever).

llvm-svn: 57166
2008-10-06 08:14:18 +00:00
Chris Lattner
aec2eeea80 A word got optimized out, thanks to Duncan for pointing this out
llvm-svn: 57116
2008-10-05 17:14:59 +00:00
Dan Gohman
8c3b14fa6d Update the documentation for first-class aggregates changes,
and remove getresult and references thereto.

llvm-svn: 57064
2008-10-04 19:00:07 +00:00
Chris Lattner
b5fb0f6d1f add a note about inline asm
llvm-svn: 57062
2008-10-04 18:36:02 +00:00
Chris Lattner
6fff750f76 improve description of param/ret attrs
llvm-svn: 57061
2008-10-04 18:33:34 +00:00
Chris Lattner
bae2f35e81 improve descriptions of function attrs
llvm-svn: 57060
2008-10-04 18:23:17 +00:00
Chris Lattner
28d083232d notes are gone.
llvm-svn: 57059
2008-10-04 18:10:21 +00:00
Devang Patel
1721a1a319 Fix grammar.
llvm-svn: 56796
2008-09-29 18:34:44 +00:00
Devang Patel
ed4b84c801 Fix sentence.
llvm-svn: 56794
2008-09-29 18:16:09 +00:00
Devang Patel
47a504c87c Implement function notes as function attributes.
llvm-svn: 56716
2008-09-26 23:51:19 +00:00
Dale Johannesen
62f64ab4c8 Accept 'inreg' attribute on x86 functions as
meaning sse_regparm (i.e. float/double values go
in XMM0 instead of ST0).  Update documentation
to reflect reality.

llvm-svn: 56619
2008-09-25 20:47:45 +00:00
Duncan Sands
ed2eeb11d8 The "alias" keyword comes first.
llvm-svn: 56170
2008-09-12 20:48:21 +00:00
Dan Gohman
3e79d697f3 Extend the vcmp/fcmp LLVM IR instructions to take vectors as arguments
and, if so, to return a vector of boolean as a result;

Extend the select LLVM IR instruction to allow you to specify a result
type which is a vector of boolean, in which case the result will be an
element-wise selection instead of choosing one vector or the other; and

Update LangRef.html to describe these changes.

This patch was contributed by Preston Gurd!

llvm-svn: 55969
2008-09-09 01:02:47 +00:00
Dan Gohman
3d1ee171e8 Bitcasting two or from aggregate types is not permitted. Update
LangRef.html, and teach the verifier to check bitcast instructions.

llvm-svn: 55921
2008-09-08 16:45:59 +00:00
Bill Wendling
9f540e75fd Clean up CSS validator errors: 'Property align doesn't exist : center'
llvm-svn: 55885
2008-09-07 10:29:20 +00:00
Bill Wendling
f2786b7a0c Formatting changes. to make the information cleaner.
llvm-svn: 55884
2008-09-07 10:26:33 +00:00
Devang Patel
b85cf5664d update.
llvm-svn: 55809
2008-09-04 23:10:26 +00:00
Devang Patel
23d60ba4ed Document function notes.
llvm-svn: 55808
2008-09-04 23:05:13 +00:00
Gabor Greif
b3eb156fe2 use the more precise 'op1' instead of 'var1' since the latter can be misunderstood to not encompass constants
llvm-svn: 54490
2008-08-07 21:46:00 +00:00