Commit Graph

3772 Commits

Author SHA1 Message Date
Rafael Espindola f1ed781aea Add a clarification about merging constants with and without unnamed_addr.
llvm-svn: 123530
2011-01-15 08:20:57 +00:00
Jakob Stoklund Olesen d3438eb27d Don't document exactly how virtual registers are represented as integers. Code
shouldn't depend directly on that.

Give an example of how to iterate over all virtual registers in a function
without depending on the representation.

llvm-svn: 123099
2011-01-08 23:10:59 +00:00
Rafael Espindola 45e6c195d7 First step in fixing PR8927:
Add a unnamed_addr bit to global variables and functions. This will be used
to indicate that the address is not significant and therefore the constant
or function can be merged with others.

If an optimization pass can show that an address is not used, it can set this.

Examples of things that can have this set by the FE are globals created to
hold string literals and C++ constructors.

Adding unnamed_addr to a non-const global should have no effect unless
an optimization can transform that global into a constant.

Aliases are not allowed to have unnamed_addr since I couldn't figure
out any use for it.

llvm-svn: 123063
2011-01-08 16:42:36 +00:00
David Greene 2f7cf7fcb4 Rename lisp-like functions as suggested by Gabor Greif as loooong time
ago.  This is both easier to learn and easier to read.

llvm-svn: 123001
2011-01-07 17:05:37 +00:00
Owen Anderson b6e4ff0d85 Stub out a new updating interface to AliasAnalysis, allowing stateful analyses to be informed when
a pointer value has potentially become escaping.  Implementations can choose to either fall back to
conservative responses for that value, or may recompute their analysis to accomodate the change.

llvm-svn: 122777
2011-01-03 21:38:41 +00:00
Owen Anderson 4423070356 We can count properly.
llvm-svn: 122773
2011-01-03 21:08:22 +00:00
David Greene dc276c315c Reapply 122341 to fix PR8199 now that clang changes are in.
llvm-svn: 122754
2011-01-03 17:30:25 +00:00
Nick Lewycky 80b2e8151e Further expand what a call graph pass may do.
The rationale is that after analyzing a function in the SCC, we may want to
modify it in a way that requires us to update its uses (f.e. to replace the
call with a constant) or its users (f.e. to call it with fewer arguments).

llvm-svn: 122739
2011-01-03 06:16:07 +00:00
Nick Lewycky 00f1b801b1 Permit CallGraphSCCPasses readonly access to the direct callers of the functions
in their SCC as they already have with the direct callees.

llvm-svn: 122734
2011-01-03 04:01:44 +00:00
Duncan Sands 7f3a656624 Correct a bunch of mistakes which meant that the example pass didn't
even compile, let alone work.

llvm-svn: 122657
2011-01-01 17:37:07 +00:00
Duncan Sands f5897f8aa0 I was unable to get the instructions to work if LLVM was built
using a separate objects directory.

llvm-svn: 122656
2011-01-01 17:28:49 +00:00
Duncan Sands 92ad41f99e Clarify that the loadable module turns up in the top-level directory,
not locally.

llvm-svn: 122655
2011-01-01 17:21:58 +00:00
Erick Tryzelaar 5d556ab160 Add a reference to the OCamlLangImpl8.
llvm-svn: 122651
2011-01-01 03:29:25 +00:00
Erick Tryzelaar 619714a65b Add an OCaml tutorial page 8
llvm-svn: 122650
2011-01-01 03:27:43 +00:00
Tobias Grosser 4c8c95b099 Integers are primitive types. Update the documentation to state this
This was done for label, void, floating point, x86mmx, metadata,
just not integer.

llvm-svn: 122606
2010-12-28 20:29:31 +00:00
David Greene be57ab185f Revert 122341. It breaks some darwin tests.
llvm-svn: 122346
2010-12-21 17:25:43 +00:00
David Greene a93adab324 Fix PR 8199. This patch prepends the build tool dir to LLVM programs
being tested.  This ensures that we test the tools just built and not
some random tools that might happen to be in the user's PATH.  This
makes LLVM testing much more stable and predictable.

llvm-svn: 122341
2010-12-21 16:55:53 +00:00
Bill Wendling 510504a6e8 Grammar corrections and some formatting changes.
llvm-svn: 122312
2010-12-21 03:31:05 +00:00
Wesley Peck 671d54d5a2 Update the target feature matrix to reflect some new features in the MBlaze backend.
llvm-svn: 122276
2010-12-20 21:54:50 +00:00
Oscar Fuentes 7064035998 New cmake option LLVM_APPEND_VC_REV for controlling when the VC
revision id is appended to the LLVM version string. Defaults to
OFF.

Until now the VC revision id was always appended to the revision
string whenever cmake was invoked (either explicitly or implicitly
because a cmake source file changed). This was causing massive
recompilations because config.h are reconfigured with the new contents
of PACKAGE_VERSION.

llvm-svn: 122240
2010-12-20 09:47:13 +00:00
Bruno Cardoso Lopes 8e303e896e Update the Target Feature Matrix for Mips
llvm-svn: 122203
2010-12-19 22:41:43 +00:00
Dan Gohman e1d8d3a2e4 Fix a typo that Bill spotted.
llvm-svn: 121909
2010-12-15 23:09:41 +00:00
Dan Gohman b3f04f468e Document some more AliasAnalysis infrastructure limitations.
llvm-svn: 121874
2010-12-15 18:45:20 +00:00
Bill Wendling 5d32b70967 Add mention that we support FreeBSD/amd64.
llvm-svn: 121832
2010-12-15 01:35:55 +00:00
Jakob Stoklund Olesen 36eab1cee4 Add IntervalMap to the Programmer's Manual.
llvm-svn: 121740
2010-12-14 00:55:51 +00:00
Chris Lattner bd61444cb9 further fixes.
llvm-svn: 121657
2010-12-13 00:17:12 +00:00
Chris Lattner 053a025bfe fix typo
llvm-svn: 121620
2010-12-12 02:42:57 +00:00
Dan Gohman 4bd64fa805 Introduce a new PartialAlias response for AliasAnalysis. For most
AliasAnalysis consumers, PartialAlias will be treated as MayAlias.

For AliasAnalysis chaining, MayAlias says "procede to the next analysis".
PartialAlias will be used to indicate that the query should terminate,
even though it didn't reach MustAlias or NoAlias.

llvm-svn: 121507
2010-12-10 19:38:58 +00:00
Eric Christopher 775608995c Use GZIPBIN instead of GZIP. Apparently gzip uses GZIP as an environment
variable for args you want to default pass to gzip.

Patch based on one by asau@inbox.ru.

Fixes PR8758.

llvm-svn: 121449
2010-12-10 01:31:51 +00:00
Chris Lattner 02093e1f0b fix some validation problems
llvm-svn: 121444
2010-12-10 00:54:03 +00:00
Chris Lattner 77c8cc8fc9 restructure this for readability, correct the example to follow the public ivar name convention
llvm-svn: 121443
2010-12-10 00:52:35 +00:00
Chris Lattner 7365a2838b add a rule for enums, patch by Zhanyong Wan!
llvm-svn: 121430
2010-12-09 23:32:39 +00:00
Bill Wendling 2eeba63215 Fix the prototype for the llvm.eh.selector intrinsic.
llvm-svn: 121425
2010-12-09 23:05:48 +00:00
Bill Wendling 7a05f00ade Fix newlines.
llvm-svn: 121233
2010-12-08 02:46:25 +00:00
Frits van Bommel 7cf63ace18 Clarify some of the differences between indexing with getelementptr and indexing with insertvalue/extractvalue.
llvm-svn: 120957
2010-12-05 20:54:38 +00:00
Zhanyong Wan 4f3b26de28 Add naming rules to the coding standards.
llvm-svn: 120689
2010-12-02 05:10:07 +00:00
Chris Lattner 9db8e15f4d forbid rtti and exceptions
llvm-svn: 120450
2010-11-30 19:20:40 +00:00
Nick Lewycky 2965d3e3cd Make @llvm.invariant.start not be readonly, so that it has side-effects. This
unbreaks test/Transforms/InstCombine/invariant.ll which was broken by r120382.
This is a fix-forward to do what I think Chris intended.

llvm-svn: 120388
2010-11-30 04:13:41 +00:00
Oscar Fuentes e1c6a67df6 Bump required cmake version on CMake.html.
llvm-svn: 120162
2010-11-25 21:41:48 +00:00
Zhanyong Wan 19b96fd4ee Fix formatting nits in the coding standards. Reviewed by clattner.
llvm-svn: 119998
2010-11-23 05:03:07 +00:00
Wesley Peck 527da1b6e2 Renaming ISD::BIT_CONVERT to ISD::BITCAST to better reflect the LLVM IR concept.
llvm-svn: 119990
2010-11-23 03:31:01 +00:00
Chris Lattner d78dbee431 a byval argument without an align can have an arbitrary alignment
requirement on the input pointer.

llvm-svn: 119914
2010-11-20 23:49:06 +00:00
Chris Lattner eebbbeb917 add some justification for "using namespace llvm;"
llvm-svn: 119544
2010-11-17 19:47:20 +00:00
Chris Lattner 8defde09fd various cleanups and other improvements, patch by Zhanyong Wan!
llvm-svn: 119515
2010-11-17 17:14:55 +00:00
Chris Lattner 79ffdc7581 With the newly simplified SourceMgr interfaces and the generalized
SrcMgrDiagHandler, we can improve clang diagnostics for inline asm:
instead of reporting them on a source line of the original line,
we can report it on the correct line wherever the string literal came
from. For something like this:

void foo() {
  asm("push %rax\n"
      ".code32\n");
}

we used to get this: (note that the line in t.c isn't helpful)

t.c:4:7: error: warning: ignoring directive for now
  asm("push %rax\n"
      ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

now we get:

t.c:5:8: error: warning: ignoring directive for now
      ".code32\n"
       ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

Note that we're pointing to line 5 properly now.

llvm-svn: 119488
2010-11-17 08:20:42 +00:00
Chris Lattner 44c2241cd4 update coding standards. Partial specialization is now ok,
though possibly not a good idea.

llvm-svn: 119398
2010-11-16 22:19:06 +00:00
Chris Lattner fced6e2587 libc++ and compiler_rt are now dual licensed under UIUC and MIT license.
llvm-svn: 119387
2010-11-16 21:32:53 +00:00
Peter Collingbourne b813cacf06 Document -enable-no-infs-fp-math and -enable-no-nans-fp-math command line options
llvm-svn: 119370
2010-11-16 19:40:13 +00:00
Dan Gohman a230754385 Fix missing includes of "llvm/Analysis/Passes.h" in the tutorials. Thanks
for Arnaud Allard de Grandmaison for preparing a patch.

llvm-svn: 119351
2010-11-16 17:28:22 +00:00
Dan Gohman 56f3a4c761 Update examples and documentation to explicitly add basicaa, now that it's
no longer included by default.

llvm-svn: 119169
2010-11-15 18:41:10 +00:00