Commit Graph

20 Commits

Author SHA1 Message Date
Duncan Sands
667d4b8de6 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66339 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-07 15:45:40 +00:00
Anton Korobeynikov
a98c7b3b24 Update this file for 2.0 syntax. Contributed by Jan Rehders
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43182 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-19 16:54:13 +00:00
Reid Spencer
9dce2b3380 Convert llvm.cs.uiuc.edu -> llvm.org
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26748 91177308-0d34-0410-b5e6-96231b3b80d8
2006-03-14 05:54:52 +00:00
Chris Lattner
af26d3ea03 add support for fastcc and friends
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21979 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-13 20:40:52 +00:00
Chris Lattner
653488d166 Hilight tail
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21726 91177308-0d34-0410-b5e6-96231b3b80d8
2005-05-06 06:07:34 +00:00
Chris Lattner
4c554c589f Add support for undef and unreachable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17059 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-16 18:24:35 +00:00
Misha Brukman
7f12bbbc92 * Add `deplibs' keyword for specifying a list of dependent libraries
* Convert tabs to spaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16558 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28 21:46:18 +00:00
Misha Brukman
6cdff92daf Added `zeroinitializer' keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13253 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-28 19:36:08 +00:00
Chris Lattner
98124c81fa Teach emacs about the select instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12326 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12 05:54:48 +00:00
Chris Lattner
0512d02af7 Make sure to syntax hilight the 'unwind' keyword!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9524 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-27 05:09:15 +00:00
Chris Lattner
84a6f39a76 Syntax highlight the new operators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9328 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-21 15:37:09 +00:00
Chris Lattner
2498d67158 Add support for the weak linkage specifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9000 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 04:56:26 +00:00
Chris Lattner
f9de5936a8 Syntax hilight
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8396 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-08 18:07:57 +00:00
Misha Brukman
bdb41194dd * Added (X)Emacs mode for TableGen description files
* Added README that describes how to use the mode files
* Associated files with .llx extension with llvm-mode


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7738 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 19:10:02 +00:00
Misha Brukman
4817a5ea3d Removing personal name from source code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6558 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03 00:59:24 +00:00
Misha Brukman
f77ed7afd9 Added the to' keyword as in cast <type> <data> to <type>'.
Cleaned up the header of the file (comments/description/etc).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6557 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03 00:57:41 +00:00
Chris Lattner
c567567759 Add support for new va_arg instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6026 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08 02:41:11 +00:00
Chris Lattner
8ad51f5965 Update to add new keywords
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5846 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22 19:31:55 +00:00
Chris Lattner
2c72b184b8 Add missing keyword, add new linkage keywords
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5785 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 20:26:11 +00:00
Misha Brukman
d9b11cf4df Added a major mode for Emacs to edit LLVM assembler code with syntax
highlighting.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4092 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-09 00:30:20 +00:00