Commit Graph

3039 Commits

Author SHA1 Message Date
Oscar Fuentes 208a87314b CMake: Renamed LLVM_ENABLE_ASSERTS to
LLVM_ENABLE_ASSERTIONS. Fine-tuned the logic that controls the
definition of NDEBUG and _DEBUG macros.

Thanks to Jay Foad for this suggestions.

llvm-svn: 72864
2009-06-04 09:26:16 +00:00
Torok Edwin b681144334 lets not forget about c++!
llvm-svn: 72778
2009-06-03 15:42:26 +00:00
Oscar Fuentes 6133813eb4 CMake: Implements and documents option LLVM_ENABLE_ASSERTS.
llvm-svn: 72774
2009-06-03 15:11:25 +00:00
Torok Edwin 8608a4287d Document how easy it is to use the gold plugin and have LTO with autotooled projects.
Please correct the documentation if I missed anything.

llvm-svn: 72773
2009-06-03 15:06:19 +00:00
Jay Foad 1a4eea5ad6 Document how phi and invoke instructions interact with SSA form.
llvm-svn: 72762
2009-06-03 10:20:10 +00:00
Nick Lewycky 8e2c4f4716 Metadata uses metadata type not empty struct.
llvm-svn: 72623
2009-05-30 16:08:30 +00:00
Nick Lewycky adbc284666 Give embedded metadata its own type instead of relying on EmptyStructTy.
llvm-svn: 72610
2009-05-30 05:06:04 +00:00
Bruno Cardoso Lopes 9d809cad50 Fix some typos
llvm-svn: 72579
2009-05-29 17:08:57 +00:00
Nick Lewycky aab930a5db Remove border around table used for layout.
llvm-svn: 72357
2009-05-24 02:46:06 +00:00
Dan Gohman 9069d890e8 Add a note mentioning that uses of the return value of an invoke
must be dominated by the normal label.

llvm-svn: 72285
2009-05-22 21:47:08 +00:00
Stuart Hastings 6d437694ab Add some missing steps to the sacred testing ritual scriptures.
llvm-svn: 72222
2009-05-21 20:23:59 +00:00
Cristian Cadar 1e059f6080 Test commit.
llvm-svn: 72092
2009-05-19 01:56:08 +00:00
Evan Cheng e87bd1d8f7 Add short descriptions of 'implicit' and 'parallel'.
llvm-svn: 72050
2009-05-18 22:14:45 +00:00
Bill Wendling e9353d7d6f Formatting. Some updating of data structures. More work needs to be done to update the examples.
llvm-svn: 71974
2009-05-17 05:52:39 +00:00
David Greene 3587eed2c4 Implement !if, analogous to $(if) in GNU make.
llvm-svn: 71815
2009-05-14 23:26:46 +00:00
David Greene d571b3c94b Graduate LLVM to the big leagues by embedding a LISP processor into TableGen.
Ok, not really, but do support some common LISP functions:

* car
* cdr
* null

llvm-svn: 71805
2009-05-14 22:38:31 +00:00
David Greene e917fff30f Implement a !foreach operator analogous to GNU make's $(foreach).
Use it on dags and lists like this:

class decls {
  string name;
}

def Decls : decls;

class B<list<string> names> : A<!foreach(Decls.name, names, !strconcat(Decls.name, ", Sr."))>;

llvm-svn: 71803
2009-05-14 22:23:47 +00:00
David Greene 98ed3c7273 Implement a !subst operation simmilar to $(subst) in GNU make to do
def/var/string substitution on generic pattern templates.  For example:

def Type;
def v4f32 : Type;
def TYPE : Type;

class GenType<Type t> {
  let type = !(subst TYPE, v4f32, t);
}

def TheType : GenType<TYPE>;

llvm-svn: 71801
2009-05-14 21:54:42 +00:00
David Greene e8f3b27e65 Implement !cast.
llvm-svn: 71794
2009-05-14 21:22:49 +00:00
Jim Grosbach 1a18dcc34a clean up line-wrapping
llvm-svn: 71771
2009-05-14 15:44:15 +00:00
Jim Grosbach 06928192ae Update the names of the exception handling sjlj instrinsics to
llvm.eh.sjlj.* for better clarity as to their purpose and scope. Add
a description of llvm.eh.sjlj.setjmp to ExceptionHandling.html.
(llvm.eh.sjlj.longjmp documentation coming when that implementation is
added).

llvm-svn: 71758
2009-05-14 00:46:35 +00:00
Bill Wendling f7b83c7ae7 Change MachineInstrBuilder::addReg() to take a flag instead of a list of
booleans. This gives a better indication of what the "addReg()" is
doing. Remembering what all of those booleans mean isn't easy, especially if you
aren't spending all of your time in that code.

I took Jakob's suggestion and made it illegal to pass in "true" for the
flag. This should hopefully prevent any unintended misuse of this (by reverting
to the old way of using addReg()).

llvm-svn: 71722
2009-05-13 21:33:08 +00:00
Chris Lattner 784ae669ab garbage allocation is not a good idea :)
llvm-svn: 71680
2009-05-13 18:02:09 +00:00
Bill Wendling cb368e295d Use llvm::raw_stream instead of llvm::Streams.
llvm-svn: 71573
2009-05-12 18:29:42 +00:00
Nick Lewycky b8f9b7a965 Make MDNode use CallbackVH. Also change MDNode to store Value* instead of
Constant* in preperation of a future change to support holding non-Constants
in an MDNode.

llvm-svn: 71407
2009-05-10 20:57:05 +00:00
Chris Lattner e648c28e73 fix typo
llvm-svn: 71362
2009-05-09 18:11:50 +00:00
Bill Wendling 9ee6a31bb8 Fix typo.
llvm-svn: 71260
2009-05-08 20:49:29 +00:00
Duncan Sands 1efabaaa2a Allow readonly functions to unwind exceptions. Teach
the optimizers about this.  For example, a readonly
function with no uses cannot be removed unless it is
also marked nounwind.

llvm-svn: 71071
2009-05-06 06:49:50 +00:00
Mikhail Glushenkov 4707bf4057 Regenerate documentation.
llvm-svn: 71055
2009-05-06 01:41:47 +00:00
Dan Gohman d99feb8da4 Add some more documentation for x86 special address spaces.
llvm-svn: 71012
2009-05-05 20:48:47 +00:00
Chris Lattner be9fa506ad Add basic support for code generation of
addrspace(257) -> FS relative on x86.  Patch by Zoltan Varga!

llvm-svn: 70992
2009-05-05 18:52:19 +00:00
Anton Korobeynikov dad5871f84 It turns out that this version of gcc is broken (cygwin is well-known in shipping
of broken/buggy/snapshot-based compilers)

llvm-svn: 70848
2009-05-04 10:24:46 +00:00
Chris Lattner 680ae74885 Remove obsolete wording, the only exception a readnone function can throw
is the empty set. :)  Thanks to Fritz for pointing this out.

llvm-svn: 70790
2009-05-03 19:06:00 +00:00
Chris Lattner f031421afe be very explicit that readnone/readonly functions can't
throw exceptions.

llvm-svn: 70788
2009-05-03 18:49:37 +00:00
Misha Brukman 3268c95840 HTML-escape '>' as '&gt;' in sample C++ code.
llvm-svn: 70569
2009-05-01 20:40:51 +00:00
Jeffrey Yasskin 590dc3c9ac Add a mention of TypeBuilder to the programmer's manual, and clean up the class
comment a bit.

llvm-svn: 70515
2009-04-30 22:33:41 +00:00
Bill Wendling 084669a1c9 Second attempt:
Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to
use the old behavior, the flag is -O0. This change allows for finer-grained
control over which optimizations are run at different -O levels.

Most of this work was pretty mechanical. The majority of the fixes came from
verifying that a "fast" variable wasn't used anymore. The JIT still uses a
"Fast" flag. I'll change the JIT with a follow-up patch.

llvm-svn: 70343
2009-04-29 00:15:41 +00:00
Duncan Sands 75bc2250ca Fix some confusion in the Ada f-e build instructions between
building without optimization and building with checking.

llvm-svn: 70205
2009-04-27 11:21:35 +00:00
Sanjiv Gupta 1f8555a07f Now that any size of integer indices are allowed for sequential types, remove the unneccessary gyan about promoting them.
llvm-svn: 70181
2009-04-27 03:21:00 +00:00
Chris Lattner a6fdf5a8c9 Add two new record types to the blockinfo block:
BLOCKNAME and SETRECORDNAME.  This allows a bitcode
file to be self describing with pretty names for 
records and blocks in addition to numbers.  This
enhances llvm-bcanalyzer to use this to print prettily.

llvm-svn: 70165
2009-04-26 22:21:57 +00:00
Sanjiv Gupta 8d319047c5 Any size of integral indices are allowed in gep for indexing into sequential types. Also adding a test case to check the indices type allowed into struct.
llvm-svn: 70134
2009-04-26 17:14:35 +00:00
Chris Lattner 1c1595f9ef improve documentation on build configurations, patch by
Josef Eisl!

llvm-svn: 70087
2009-04-25 22:24:49 +00:00
Chris Lattner 0cb8977c0a aDd support for building a subset of the llvm tools, patch by Jeffrey Yasskin!
llvm-svn: 70082
2009-04-25 22:08:52 +00:00
Chris Lattner 6a6d3cc852 Update docs to not mention gcse/loadvn and mention memdep and
new stuff.  PR3924.

llvm-svn: 70077
2009-04-25 21:11:37 +00:00
Sanjiv Gupta 0c155e6dbe Fixed the gep example for i16 type indices.
llvm-svn: 70019
2009-04-25 07:27:44 +00:00
Sanjiv Gupta 77abea0d6a Fixed spaces and the getelementpointer example with i16 type indices.
llvm-svn: 69971
2009-04-24 16:38:13 +00:00
Sanjiv Gupta 46c97e626f Allow i16 type indices to gep.
llvm-svn: 69946
2009-04-24 02:37:54 +00:00
David Greene 0e89886048 Fix a documentation bug.
llvm-svn: 69923
2009-04-23 21:27:58 +00:00
David Greene 196ac3c69a Make BinOps typed and require a type specifier for !nameconcat. This
allows binops to be used in typed contexts such as when passing
arguments to classes.

llvm-svn: 69921
2009-04-23 21:25:15 +00:00
David Greene f00919a040 Allow defm to inherit from multiple multiclasses.
llvm-svn: 69832
2009-04-22 22:17:51 +00:00
David Greene a9c6c5d39b Implement !nameconcat to concatenate strings and look up the resulting
name in the symbol table, returning an object.

llvm-svn: 69822
2009-04-22 20:18:10 +00:00
David Greene 753ed8fd9c Implement multiclass inheritance.
llvm-svn: 69810
2009-04-22 16:42:54 +00:00
Dan Gohman a4fea5b227 ISD::ADD_PARTS is gone; use ISD::SMUL_LOHI as an example instead.
llvm-svn: 69804
2009-04-22 15:55:31 +00:00
Duncan Sands 10961cd40a Make it clearer that llvm-gcc is not needed for
building llvm.

llvm-svn: 69441
2009-04-18 12:40:19 +00:00
Jim Grosbach 7da1b90597 Update information on canadian cross builds
llvm-svn: 69358
2009-04-17 17:25:16 +00:00
Bill Wendling 64602b1ed6 More obsessive reformatting. Fixed some validation errors.
llvm-svn: 69130
2009-04-15 02:12:37 +00:00
Chris Lattner 184f1be4a8 Add a new "available_externally" linkage type. This is intended
to support C99 inline, GNU extern inline, etc.  Related bugzilla's
include PR3517, PR3100, & PR2933.  Nothing uses this yet, but it
appears to work.

llvm-svn: 68940
2009-04-13 05:44:34 +00:00
Nick Lewycky 04adcf153d Add paragraph tags.
llvm-svn: 68934
2009-04-13 02:03:40 +00:00
Nick Lewycky 4ac15cee54 Fix compile error. Pointed out by mait on #llvm IRC!
llvm-svn: 68910
2009-04-12 20:15:44 +00:00
Misha Brukman 5e8b8b37a3 Fixed spelling.
llvm-svn: 68821
2009-04-10 20:48:27 +00:00
Chris Lattner 4c4453061e fix typo, patch by Shlomi Fish!
llvm-svn: 68784
2009-04-10 15:38:51 +00:00
Chris Lattner 3875195865 Remove AllowInverse: it leaks memory and is not the right
abstraction for CommandLine.

llvm-svn: 68588
2009-04-08 03:43:51 +00:00
Bill Wendling b01824afb5 Use 'name' instead of 'href'.
llvm-svn: 68534
2009-04-07 18:54:06 +00:00
Bill Wendling ebb4486a84 Fix verification failure.
llvm-svn: 68531
2009-04-07 18:52:30 +00:00
Bill Wendling bf448a1010 Offer an explanation of why building LLVM-GCC with objdir == srcdir doesn't
work.

llvm-svn: 68530
2009-04-07 18:51:13 +00:00
Bill Wendling 1ae487bad5 Another reformatting. No change in docs.
llvm-svn: 68528
2009-04-07 18:40:56 +00:00
Chris Lattner 4bda28e765 add a new Blob encoding abbreviation for bitcode files that emits
elements in a form that is efficient for the reader to just get a
pointer in memory and start reading.  APIs to do efficient reading
and writing are still todo.

llvm-svn: 68465
2009-04-06 21:50:39 +00:00
Chris Lattner 28e2cd8090 clean up some html
llvm-svn: 68456
2009-04-06 20:35:19 +00:00
Bill Wendling d231f8a592 Add character encoding declaration to fix verification warning.
llvm-svn: 68440
2009-04-05 12:38:44 +00:00
Bill Wendling b95325c543 Obsessively format this document.
llvm-svn: 68439
2009-04-05 12:37:44 +00:00
Bill Wendling b4d7102417 Add character encoding declaration.
llvm-svn: 68433
2009-04-05 00:44:06 +00:00
Bill Wendling 9216ac0bcc Fix validation error.
llvm-svn: 68432
2009-04-05 00:43:04 +00:00
Bill Wendling b38e198f02 A lot of formatting changes.
llvm-svn: 68431
2009-04-05 00:41:19 +00:00
Bill Wendling 3b779984b4 Fix some HTML validation errors.
llvm-svn: 68427
2009-04-04 22:36:02 +00:00
Bill Wendling e1a070b6e3 General clean-up of the bitcode format documentation. Having the paragraphs
formatted the same, putting words in <tt> tags, adding &mdash;s, etc.

llvm-svn: 68426
2009-04-04 22:27:03 +00:00
Nick Lewycky 49f891958f Add support for embedded metadata to LLVM. This introduces two new types of
Constant, MDString and MDNode which can only be used by globals with a name
that starts with "llvm." or as arguments to a function with the same naming
restriction.

llvm-svn: 68420
2009-04-04 07:22:01 +00:00
Bill Wendling 184064484b Duplicate entry.
llvm-svn: 68401
2009-04-03 20:32:13 +00:00
Chris Lattner eaa52bc29b "Add documentation about the fix for missing x86
target library in windows under the "Common problems" section."

Patch by Stefanus Du Toit!

llvm-svn: 68399
2009-04-03 20:23:52 +00:00
Chris Lattner 0fc36ca69d update some syntax
llvm-svn: 68362
2009-04-03 00:29:19 +00:00
Chris Lattner d978cc5c63 add this to SVN to allow collaborative hacking.
llvm-svn: 68243
2009-04-01 21:11:04 +00:00
John Mosby 169927e7ef docs/TestingGuide.html: correction to prev. text (objdir!=srcdir required for running test-suite), removed refs to llvm-test
llvm-svn: 68051
2009-03-30 18:56:53 +00:00
Chris Lattner a01a563813 fix some validation problems.
llvm-svn: 68026
2009-03-30 06:34:59 +00:00
John Mosby b92a76ff4f Clarify section on setting up and running test-suite
llvm-svn: 68023
2009-03-30 04:37:51 +00:00
Bill Wendling c619aaf122 Update the Visual Studio docs. Patch by Stefanus!
llvm-svn: 67940
2009-03-28 10:24:15 +00:00
Mikhail Glushenkov 0f78c2721b Documentation update.
Expand a bit on various '--*-graph' options.

llvm-svn: 67836
2009-03-27 12:58:29 +00:00
Duncan Sands 61837e6dc8 Mention explicitly that the Ada front-end will not bootstrap.
The configure line had --disable-bootstrap, but it was not
clear that this is essential.

llvm-svn: 67651
2009-03-24 21:16:39 +00:00
Chris Lattner 57be315d36 tt'ify.
llvm-svn: 67505
2009-03-23 04:53:34 +00:00
Chris Lattner 30bc972596 VC++ 6.0 is not future work :)
Do not recommend llvm::OStream anymore.  Use raw_ostream or MemoryBuffer.

llvm-svn: 67504
2009-03-23 04:52:53 +00:00
Duncan Sands b1656c1e1f Add some explanations of how apint loads and stores
work.

llvm-svn: 67471
2009-03-22 11:33:16 +00:00
Duncan Sands 0c9742c3ae Update these for the 2.5 release.
llvm-svn: 66890
2009-03-13 13:42:20 +00:00
Gabor Greif 02ab9ab66d add some text to explain sentinels
llvm-svn: 66790
2009-03-12 10:30:31 +00:00
Gabor Greif 4ef9bc053a minor tweaks
llvm-svn: 66788
2009-03-12 09:47:03 +00:00
Gabor Greif 42225e50f3 do not pretend llvm/.../*.h being system headers
llvm-svn: 66697
2009-03-11 20:23:40 +00:00
Duncan Sands 4581bebf2a 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
Gabor Greif 605c7cab75 fix validator errors
llvm-svn: 66688
2009-03-11 20:04:08 +00:00
Gabor Greif bfdf23f07c Fix exaples using IRBuilder. Thanks, Quadrescence and Glip7 from IRC!
llvm-svn: 66687
2009-03-11 19:51:07 +00:00
Duncan Sands e2881053c9 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 dd282825a8 Clarify wording, patch by Stefanus Du Toit!
llvm-svn: 66458
2009-03-09 20:55:18 +00:00
Chris Lattner 4ce03e66a1 don't allow hash_map or hash_set.
llvm-svn: 66400
2009-03-09 05:20:45 +00:00
Duncan Sands 12da8ce3d2 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