Commit Graph

3903 Commits

Author SHA1 Message Date
Chris Lattner b1ed91f397 Land the long talked about "type system rewrite" patch. This
patch brings numerous advantages to LLVM.  One way to look at it
is through diffstat:
 109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing.  Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
   union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
   uniques them.  This means that the compiler doesn't merge them structurally
   which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
   struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
   in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead 
   "const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.  
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.

llvm-svn: 134829
2011-07-09 17:41:24 +00:00
Cameron Zwarich a32fd210c1 Use add instead of accumulate.
llvm-svn: 134752
2011-07-08 22:13:55 +00:00
Cameron Zwarich f03fa189ca Add an intrinsic and codegen support for fused multiply-accumulate. The intent
is to use this for architectures that have a native FMA instruction.

llvm-svn: 134742
2011-07-08 21:39:21 +00:00
Jakub Staszak dce4dffc84 Add documenation about "branch_weight" metadata and __builtin_expect instruction
llvm-svn: 134517
2011-07-06 18:31:02 +00:00
Owen Anderson 2f37bdc392 Generalize @llvm.ctlz, @llvm.cttz, and @llvm.ctpop to work on vectors of integers, and fix the one optimization pass that I'm aware of that needs updating for this. At least one current target, ARM NEON, can implement these operations on vectors directly.
llvm-svn: 134265
2011-07-01 21:52:38 +00:00
Duncan Sands 23fb54ed15 The enum was moved to ISDOpcodes.h.
llvm-svn: 134134
2011-06-30 06:37:07 +00:00
Evan Cheng 0ac49c6eab Add missing operand. rdar://9694169
llvm-svn: 134078
2011-06-29 17:14:00 +00:00
Dan Gohman 8bd11f1834 Document nonlazybind.
llvm-svn: 133160
2011-06-16 16:03:13 +00:00
Jakob Stoklund Olesen 99f35eab45 Use set operations instead of plain lists to enumerate register classes.
This simplifies many of the target description files since it is common
for register classes to be related or contain sequences of numbered
registers.

I have verified that this doesn't change the files generated by TableGen
for ARM and X86. It alters the allocation order of MBlaze GPR and Mips
FGR32 registers, but I believe the change is benign.

llvm-svn: 133105
2011-06-15 23:28:14 +00:00
Argyrios Kyrtzidis 0c5c1cb1b0 Document ADT/PackedVector.h in "Programmer's Manual" doc.
llvm-svn: 133077
2011-06-15 19:56:01 +00:00
Bruno Cardoso Lopes dc9ff3a4b1 Add one more argument to the prefetch intrinsic to indicate whether it's a data
or instruction cache access. Update the targets to match it and also teach
autoupgrade.

llvm-svn: 132976
2011-06-14 04:58:37 +00:00
Chris Lattner ed58a95c33 mention graph vis isn't available in Release builds.
llvm-svn: 132916
2011-06-13 15:59:35 +00:00
Chad Rosier ab5ac96364 Typo.
llvm-svn: 132730
2011-06-07 20:03:13 +00:00
Andrew Trick c71224e29f Corrections and additional information for "Creating and LLVM Project"
documentation. This should now reflect the current state of LLVM Makefiles.

llvm-svn: 132527
2011-06-03 02:20:48 +00:00
Andrew Trick 621129f07a whitespace
llvm-svn: 132526
2011-06-03 02:16:53 +00:00
Devang Patel 1d81ea81cd Fix html formatting.
llvm-svn: 132345
2011-05-31 18:06:14 +00:00
Devang Patel 5c26a85d1d Clarify documentation and remove guarantees that are not fulfilled.
llvm-svn: 132344
2011-05-31 17:45:27 +00:00
Chris Lattner 0ec0649bc2 replace the intro tutorial from 2004 with a more recent work.
llvm-svn: 132310
2011-05-30 03:36:58 +00:00
John McCall 046c47e970 Implement and document the llvm.eh.resume intrinsic, which is
transformed by the inliner into a branch to the enclosing landing pad
(when inlined through an invoke).  If not so optimized, it is lowered
DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume
as appropriate).  Its chief advantage is that it takes both the
exception value and the selector value as arguments, meaning that there
is zero effort in recovering these;  however, the frontend is required
to pass these down, which is not actually particularly difficult.

Also document the behavior of landing pads a bit better, and make it
clearer that it's okay that personality functions don't always land at
landing pads.  This is just a fact of life.  Don't write optimizations that
rely on pushing things over an unwind edge.

llvm-svn: 132253
2011-05-28 07:45:59 +00:00
Chad Rosier 06da55e7d0 Clean out the 2.9 Release Notes. Mostly limited to What's New in LLVM
and enhancements in sub-project status updates.

llvm-svn: 132227
2011-05-27 22:50:46 +00:00
Chad Rosier d1db4f8b9b Add change of crc32 intrinsic to release notes
llvm-svn: 132212
2011-05-27 20:13:10 +00:00
Dan Gohman e635c529a0 Fix copy+pastos.
llvm-svn: 132168
2011-05-27 00:36:31 +00:00
Dan Gohman 4a70bfe3c0 Update documentation: -basicaa does chaining these days.
llvm-svn: 132010
2011-05-24 22:01:32 +00:00
Dan Gohman 911fa9084c Document llvm.exp and llvm.pow.
llvm-svn: 131921
2011-05-23 21:13:03 +00:00
Chris Lattner f98eadee17 document thiscall, PR9101
llvm-svn: 131873
2011-05-22 22:28:47 +00:00
Chris Lattner c2e8540216 insertvalue takes a variable number of arguments, document this, fixing PR9935.
llvm-svn: 131850
2011-05-22 07:18:08 +00:00
Chad Rosier 38fb5bbacc Correct typos in TestingGuide.html
llvm-svn: 131546
2011-05-18 18:07:16 +00:00
Nick Lewycky 9c876bf937 Fix errors in this llvm ir example.
llvm-svn: 131416
2011-05-16 19:29:30 +00:00
Akira Hatanaka cbb7fa68ed 1. Keep lines in 80 columns.
2. Remove unused function.
3. Correct indentation.

llvm-svn: 131028
2011-05-06 22:11:29 +00:00
Bill Wendling 260c4a9466 Document the automatic alias printing of InstAliases.
llvm-svn: 130889
2011-05-04 23:40:14 +00:00
Devang Patel 09fa69e151 Use llvm.dbg.cu named metadata to collect compile units.
llvm-svn: 130756
2011-05-03 16:18:28 +00:00
Oscar Fuentes 3cbc9bece8 Update instructions: LLVM.cmake is now LLVMConfig.cmake
llvm-svn: 130631
2011-05-01 02:12:20 +00:00
NAKAMURA Takumi 2277ab2ae6 docs/doxygen.css: Tweak padding on memdoc.
llvm-svn: 130493
2011-04-29 09:59:12 +00:00
NAKAMURA Takumi 8513d4236c docs/doxygen.css: Tweak style for readability.
A few styles are brought from http://llvm.org/test-doxygen/api/api.css

llvm-svn: 130333
2011-04-27 21:53:35 +00:00
Mikhail Glushenkov 06655d4a61 Regenerate.
llvm-svn: 130091
2011-04-24 14:17:37 +00:00
Andrew Trick 3260c9df4e Comment edit.
llvm-svn: 130047
2011-04-23 03:27:19 +00:00
NAKAMURA Takumi aa3d6242cf docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>

<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>

<!-- End of section body -->
</div>

FIXME: Care H5 better.
llvm-svn: 130040
2011-04-23 00:30:22 +00:00
Devang Patel 1d6bbd41aa Let front-end tie subprogram declaration with subprogram definition directly.
llvm-svn: 130028
2011-04-22 23:10:17 +00:00
NAKAMURA Takumi 3ad2828811 docs/llvm.css: Introduce cascading style <div> and <p> continued on <h[2-5]>. For now, it is applied in AliasAnalysis.html and ReleaseNotes.html.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>

<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>

<!-- End of section body -->
</div>

llvm-svn: 129901
2011-04-21 01:52:00 +00:00
NAKAMURA Takumi 590ba6195b docs/Passes.html: Fix a garbage.
llvm-svn: 129900
2011-04-21 01:32:19 +00:00
NAKAMURA Takumi fc8d930f6e docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.
H1 ... doc_title
H2 ... doc_section
H3 ... doc_subsection
H4 ... doc_subsubsection

llvm-svn: 129736
2011-04-18 23:59:50 +00:00
NAKAMURA Takumi 6483513a6d docs: Redefine Heading elements as below;
H1 ... Title (and might be Chapter in future)
H2 ... Section
H3 ... Subsection
H4 ... Sub-subsection

llvm-svn: 129683
2011-04-18 01:17:51 +00:00
Devang Patel 514b4006c2 Introduce support to encode Objective-C property information in debugging information generated for an interface.
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Douglas Gregor b92fbb7036 Fix some broken links, from Matthieu Monrocq
llvm-svn: 129609
2011-04-15 21:21:31 +00:00
Chris Lattner 0ab5e2cded Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Andrew Trick d175c98d41 Documented bugpoint --compile-custom --compile-command.
I've used it a few times to reduce unit tests and gotten one request for information on it. It's not easy to use correctly because bugpoint doesn't tell you when you're doing it wrong.

llvm-svn: 129507
2011-04-14 05:05:36 +00:00
Jay Foad fdb9f6a3ca Fix typo.
llvm-svn: 129437
2011-04-13 13:03:56 +00:00
Dan Gohman c8454ee995 Fix a hole in the definition of "dependence" used by trap values. Trap
values are also transmitted through branches which cause side effects to
be skipped altogether.

llvm-svn: 129404
2011-04-12 23:05:59 +00:00
Oscar Fuentes 23fe31cc8d Document how to build a LLVM pass with CMake out of source.
Patch by arrowdodger!

llvm-svn: 129381
2011-04-12 19:40:35 +00:00
NAKAMURA Takumi 62920834fa docs/CommandGuide/index.html: Fix CSS url to relative.
llvm-svn: 129268
2011-04-11 03:27:38 +00:00