1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Commit Graph

539 Commits

Author SHA1 Message Date
Duncan Sands
dca010d0d7 Add some explanations of how apint loads and stores
work.

llvm-svn: 67471
2009-03-22 11:33:16 +00:00
Duncan Sands
b27c523449 It makes no sense to have a ODR version of common
linkage, so remove it.

llvm-svn: 66690
2009-03-11 20:14:15 +00:00
Duncan Sands
aadb34c357 Remove the one-definition-rule version of extern_weak
linkage: this linkage type only applies to declarations,
but ODR is only relevant to globals with definitions.

llvm-svn: 66650
2009-03-11 08:08:06 +00:00
Chris Lattner
952dfa96b7 Clarify wording, patch by Stefanus Du Toit!
llvm-svn: 66458
2009-03-09 20:55:18 +00:00
Duncan Sands
5ab54d488f Introduce new linkage types linkonce_odr, weak_odr, common_odr
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
2009-03-07 15:45:40 +00:00
Bill Wendling
012bf508b5 Fix grammaro.
llvm-svn: 65727
2009-02-28 22:12:54 +00:00
Chris Lattner
0472bd03d4 don't use the word 'aggregate' with constants, it is confusing.
llvm-svn: 65702
2009-02-28 18:32:25 +00:00
Chris Lattner
61fca97b76 don't redescribe bitcast constraints in two places. It is not valid to
bitcast from one aggregate to another.

llvm-svn: 65700
2009-02-28 18:27:03 +00:00
Nick Lewycky
3134ef23bb Update this text for first-class aggregates.
llvm-svn: 65697
2009-02-28 17:30:06 +00:00
Nick Lewycky
494b48e76b Demonstrate the act of including multiple space-separated parameter attributes,
by request on IRC.

llvm-svn: 64619
2009-02-15 23:06:14 +00:00
Dale Johannesen
9a80b9d451 Edit description of floating point constants to
reflect reality.  Acknowledgements to John Clements
for prodding me into this.

llvm-svn: 64332
2009-02-11 22:14:51 +00:00
Chris Lattner
62e48b2e3b fix typo, patch by Jonathan Brandmeyer!
llvm-svn: 64132
2009-02-09 10:00:56 +00:00
Bill Wendling
19c640efd1 Document llvm.umul.with.overflow indicating that it's badly broken and not intended for use.
llvm-svn: 64104
2009-02-08 23:00:09 +00:00
Chris Lattner
c3f02abe2b I can't type today apparently.
llvm-svn: 64097
2009-02-08 22:21:28 +00:00
Chris Lattner
4a31df9488 fix typo
llvm-svn: 64090
2009-02-08 19:59:51 +00:00
Chris Lattner
4a51a59a4b document pointer type constraints, PR3513
llvm-svn: 64088
2009-02-08 19:53:29 +00:00
Bill Wendling
b2e94f5ae0 Fixes from feedback.
llvm-svn: 64070
2009-02-08 04:04:40 +00:00
Bill Wendling
511a92524b Document the 'llvm.OP.with.overflow' intrinsics.
llvm-svn: 64066
2009-02-08 01:40:31 +00:00
Chris Lattner
9a13b357c6 PR3485, document alignment on byref.
llvm-svn: 63836
2009-02-05 05:42:28 +00:00
Chris Lattner
408b359e6e validation error fix.
llvm-svn: 63503
2009-02-02 07:33:15 +00:00
Chris Lattner
27bf492e30 Document type upreferences (PR3380), patch by Stein Roger Skafløtten
with enhancements and corrections by me.

llvm-svn: 63502
2009-02-02 07:32:36 +00:00
Dan Gohman
017bf94fbc Add more documentation mentioning the limitations due to PR2660.
llvm-svn: 62919
2009-01-24 15:58:40 +00:00
Dan Gohman
3f9d24dca8 Add a few more notes about LLVM IR features that codegen doesn't
yet support.

llvm-svn: 62739
2009-01-22 01:39:38 +00:00
Duncan Sands
2bb8d618ad Grammar fix.
llvm-svn: 62319
2009-01-16 09:29:46 +00:00
Rafael Espindola
0aba6c9435 Add the private linkage.
llvm-svn: 62279
2009-01-15 20:18:42 +00:00
Dan Gohman
276142c95b Document several current CodeGen limitations in LangRef.html.
Patches for any of these are welcome!

llvm-svn: 62120
2009-01-12 23:12:39 +00:00
Dan Gohman
bdb0a5b773 The LLVM Assembly Language Reference incorrectly stated that the
prefix used for dll{import,export} is _imp__; it is actually __imp_.
Patch by Mahadevan R!

llvm-svn: 62103
2009-01-12 21:35:55 +00:00
Chris Lattner
96dacb990b Implement PR3313, and while I'm at it address a very FAQ.
llvm-svn: 62048
2009-01-11 20:53:49 +00:00
Dan Gohman
473e732586 Fix the example syntax for named sections.
llvm-svn: 62033
2009-01-11 00:40:00 +00:00
Dan Gohman
7f43292fe9 A few more whitespace tidyments.
llvm-svn: 61655
2009-01-04 23:49:44 +00:00
Dan Gohman
32c0a04815 Tidy whitespace.
llvm-svn: 61653
2009-01-04 23:44:43 +00:00
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
Bill Wendling
b120b02f4d It's "a static", not "an static"
llvm-svn: 54379
2008-08-05 22:29:16 +00:00
Chris Lattner
ffc6ce44a7 Expand acronyms, suggested by Walter Pawley
llvm-svn: 54362
2008-08-05 18:29:16 +00:00
Chris Lattner
0ad96be1be Capitalize LLVM, suggested by Walt Pawley
llvm-svn: 54360
2008-08-05 18:21:08 +00:00
Mon P Wang
fb483982f5 Added support for overloading intrinsics (atomics) based on pointers
to different address spaces.  This alters the naming scheme for those
intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32

llvm-svn: 54195
2008-07-30 04:36:53 +00:00
Nate Begeman
9a71580e21 Add vector shifts to the IR, patch by Eli Friedman.
CodeGen & Clang work coming next.

llvm-svn: 54161
2008-07-29 15:49:41 +00:00
Duncan Sands
7a6ba3f3a4 Note that 'nest' only applies to pointers.
llvm-svn: 53226
2008-07-08 09:27:25 +00:00
Mon P Wang
7d89d61387 Added MemOperands to Atomic operations since Atomics touches memory.
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub

llvm-svn: 52706
2008-06-25 08:15:39 +00:00
Dan Gohman
35787913ea Fix the syntax of insertvalue in the example.
llvm-svn: 52623
2008-06-23 15:26:37 +00:00
Chris Lattner
d1c3cc07ce integer types are not primitive, they are derived.
llvm-svn: 52551
2008-06-20 20:50:48 +00:00
Dan Gohman
db0beeefb1 Fix a missing comma spotted by Bram Geron.
llvm-svn: 52467
2008-06-18 18:42:13 +00:00
Dan Gohman
ac5c3382fe IR, bitcode reader, bitcode writer, and asmparser changes to
insertvalue and extractvalue to use constant indices instead of
Value* indices. And begin updating LangRef.html.

There's definately more to come here, but I'm checking this 
basic support in now to make it available to people who are
interested.

llvm-svn: 51806
2008-05-31 00:58:22 +00:00
Dale Johannesen
0950f431e5 Document common linkage.
llvm-svn: 51517
2008-05-23 23:13:41 +00:00
Dan Gohman
c4932afddc label is a first-class type.
llvm-svn: 51512
2008-05-23 22:50:26 +00:00
Dan Gohman
3f8bacf8cf Update the description of first-class types to reflect that
structs and arrays are now first-class. And fix a sentance
fragment in the insertvalue description. Thanks to Chris
for pointing these out!

llvm-svn: 51506
2008-05-23 21:53:15 +00:00
Chris Lattner
7d9e5793c5 Clarify that and/or/xor/sdiv etc all allow vectors.
llvm-svn: 51335
2008-05-20 20:48:21 +00:00
Arnold Schwaighofer
ee9e46e049 Add documentation for tail call optimization to CodeGenerator.html. Add a link
referring to it to LangRef.html.

llvm-svn: 51097
2008-05-14 09:17:12 +00:00
Dan Gohman
5bdb90a532 s/indicies/indices/ and clarify the extractvalue and insertvalue are
working with struct field or array element values. Thanks Duncan!

llvm-svn: 51059
2008-05-13 18:16:06 +00:00
Dan Gohman
31a31d4511 Initial documentation for first-class aggregates changes.
llvm-svn: 51013
2008-05-12 23:51:09 +00:00
Dan Gohman
b3a433ed7b Fix a malformed %gt;
llvm-svn: 51011
2008-05-12 23:38:42 +00:00
Nate Begeman
b5b1e1353b Add two new instructions to the llvm IR, vicmp and vfcmp. see updated LangRef
for details.  CodeGen support coming in a follow up patch

llvm-svn: 50985
2008-05-12 19:01:56 +00:00
Chris Lattner
ddd6b159be Doc updates/edits, contributed by Terence Parr!
llvm-svn: 50205
2008-04-24 05:59:56 +00:00
Chris Lattner
7b8303d37b fix description of 'ret' to be more correct with multiple return
values.  Clarify that it is impossible to 'multiply return' a 
struct with zero elements.

llvm-svn: 50131
2008-04-23 04:59:35 +00:00
Chris Lattner
7fe5f6ffea Allow undef as an operand to getresult.
llvm-svn: 50130
2008-04-23 04:06:52 +00:00
Chris Lattner
5b6f941e70 free(null) -> noop
llvm-svn: 49972
2008-04-19 22:41:32 +00:00
Chris Lattner
2f237756c5 Some clarifications suggested by Jon Sargeant
llvm-svn: 49963
2008-04-19 21:01:16 +00:00
Chris Lattner
0d6e900c28 more edits from Jon Sargeant
llvm-svn: 49065
2008-04-02 00:38:26 +00:00
Chris Lattner
c0850245b7 add a dropped hunk from Jon Sargeant's patch.
llvm-svn: 49045
2008-04-01 18:47:32 +00:00
Chris Lattner
a0dbb9a92a make langref more precise, wave 1, from Jon Sargeant
llvm-svn: 49044
2008-04-01 18:45:27 +00:00
Devang Patel
8408d79657 void type is also a valid function return type.
llvm-svn: 48740
2008-03-24 20:52:42 +00:00
Devang Patel
223760bf3f Fix typo. Clarify underlying message.
llvm-svn: 48734
2008-03-24 18:10:52 +00:00
Devang Patel
d603d825c7 Update Function type documentation to clarify how multiple return values are supported.
llvm-svn: 48721
2008-03-24 05:35:41 +00:00
Anton Korobeynikov
197f07a72b Aliasing chains cleanups: update langref, add check into verifier
llvm-svn: 48685
2008-03-22 08:36:14 +00:00
Chris Lattner
3819e559c9 clean up and fix the call section.
llvm-svn: 48651
2008-03-21 17:24:17 +00:00
Chris Lattner
cc10d27f38 cleanups for the getresult section.
llvm-svn: 48650
2008-03-21 17:20:51 +00:00
Duncan Sands
c7c1fab458 Clarify the unwind attribute. Add assumption
about sret made by the optimizers.

llvm-svn: 48452
2008-03-17 12:17:41 +00:00
Nick Lewycky
ee790026a3 Commit works on regular functions too. Fix the syntax to allow @foo.
llvm-svn: 48414
2008-03-16 07:18:12 +00:00
Devang Patel
0d234e20a5 fix grammer
llvm-svn: 48211
2008-03-11 05:51:59 +00:00
Devang Patel
b1b30b2c76 Document multiple return values.
llvm-svn: 48173
2008-03-10 20:49:15 +00:00
Andrew Lenharth
db9cd46f5d Atomic op support. If any gcc test uses __sync builtins, it might start failing on archs that haven't implemented them yet
llvm-svn: 47430
2008-02-21 06:45:13 +00:00
Duncan Sands
0dcb894d50 Clarify that 'sret' only applies to pointers, and
only applies to the first parameter.

llvm-svn: 47256
2008-02-18 04:19:38 +00:00
Owen Anderson
48d44e0481 Make the definition of the noalias attribute clearer.
llvm-svn: 47255
2008-02-18 04:09:01 +00:00
Andrew Lenharth
c178981b85 llvm.memory.barrier, and impl for x86 and alpha
llvm-svn: 47204
2008-02-16 01:24:58 +00:00
Gabor Greif
3453f29f65 explain that NumElements in alloca and malloc defaults to one
llvm-svn: 46912
2008-02-09 22:24:34 +00:00
Chris Lattner
f898e3cc8f llvm.sqrt(-0.0) is defined.
llvm-svn: 46500
2008-01-29 07:00:44 +00:00
Chris Lattner
ff2b9ef01b make handling of overflow and undefined results much more clear.
Patch by Eli Friedman, thanks!

llvm-svn: 46428
2008-01-28 00:36:27 +00:00
Anton Korobeynikov
b26ac8cbb2 Add description of 'llvm.trap' intrinsic. Also, minor fixes in formatting.
llvm-svn: 46024
2008-01-15 22:31:34 +00:00
Chris Lattner
8c17d65f09 clarify that byval is valid for any pointer argument.
llvm-svn: 45998
2008-01-15 04:34:22 +00:00
Chris Lattner
6fa8e434a3 document the byval parameter attribute.
llvm-svn: 45855
2008-01-11 06:20:47 +00:00
Chris Lattner
2b8bb9d2a4 improve description of alignment, patch by Alain Frisch.
llvm-svn: 45662
2008-01-06 21:04:43 +00:00
Chris Lattner
f8d3ea59f3 Fix typo noticed by 'Danny' in PR1901
llvm-svn: 45661
2008-01-06 19:51:52 +00:00
Chris Lattner
6142c837b5 fix nesting issues.
llvm-svn: 45566
2008-01-04 04:34:14 +00:00
Chris Lattner
056ca9d8e2 fix validation issues.
llvm-svn: 45565
2008-01-04 04:33:49 +00:00
Chris Lattner
3618504cc2 improve the description of types, patch by Alain Frisch
llvm-svn: 45564
2008-01-04 04:32:38 +00:00
Chris Lattner
233cd2bbcd update to llvm 2.0 syntax.
llvm-svn: 45355
2007-12-25 20:34:52 +00:00
Gordon Henriksen
a9f4ed4070 Noting and enforcing that GC intrinsics are valid only within a
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
2007-12-25 02:31:26 +00:00
Chris Lattner
c42bf3be15 fix more table abuses.
llvm-svn: 45187
2007-12-19 05:04:11 +00:00
Chris Lattner
f87fd16366 avoid confusing terminology (what is a "word"?), fix scary markup, add section to TOC.
llvm-svn: 45150
2007-12-18 06:18:21 +00:00
Christopher Lamb
d3bac47ce6 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
2007-12-17 01:00:21 +00:00
Christopher Lamb
6d12d7c0fe Implement part of review feedback for address spaces.
llvm-svn: 44933
2007-12-12 08:44:39 +00:00
Christopher Lamb
99016c5793 Add information on address space qualifiers for pointer types and global
declarations to the LangRef.

llvm-svn: 44860
2007-12-11 09:31:00 +00:00
Gordon Henriksen
fbd6134a51 Fix a typo spotted by Nick Lewycky.
llvm-svn: 44774
2007-12-10 03:30:21 +00:00
Gordon Henriksen
5d201e0bcc Adding a collector name attribute to Function in the IR. These
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
2007-12-10 03:18:06 +00:00
Duncan Sands
3602011bec Fix PR1146: parameter attributes are longer part of
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
2007-11-27 13:23:08 +00:00
Duncan Sands
d05a55f03f Rename the 'const' parameter attribute to 'readnone',
and the 'pure' parameter attribute to 'readonly'.
Names suggested by DannyB.

llvm-svn: 44273
2007-11-22 20:23:04 +00:00
Nate Begeman
2a8ef3f29a Add support for vectors to int <-> float casts.
llvm-svn: 44204
2007-11-17 03:58:34 +00:00
Duncan Sands
91b3db2956 Tweak the descriptions of the new 'const' and 'pure' attributes.
llvm-svn: 44132
2007-11-14 21:14:02 +00:00
Anton Korobeynikov
6108a7b107 Document pure/const parameter attributes
llvm-svn: 44111
2007-11-14 10:30:13 +00:00
Dan Gohman
6255ce9f5d Add support for vector remainder operations.
llvm-svn: 43744
2007-11-05 23:35:22 +00:00
Bill Wendling
8a53fc3a85 Put correct link in example
llvm-svn: 43216
2007-10-22 05:10:05 +00:00