Commit Graph

20 Commits

Author SHA1 Message Date
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
Anton Korobeynikov f93fa13de7 Update this file for 2.0 syntax. Contributed by Jan Rehders
llvm-svn: 43182
2007-10-19 16:54:13 +00:00
Reid Spencer c67a060a51 Convert llvm.cs.uiuc.edu -> llvm.org
llvm-svn: 26748
2006-03-14 05:54:52 +00:00
Chris Lattner e4df5e4681 add support for fastcc and friends
llvm-svn: 21979
2005-05-13 20:40:52 +00:00
Chris Lattner abb5bd78ca Hilight tail
llvm-svn: 21726
2005-05-06 06:07:34 +00:00
Chris Lattner 5a02a3e963 Add support for undef and unreachable
llvm-svn: 17059
2004-10-16 18:24:35 +00:00
Misha Brukman e06653ff76 * Add `deplibs' keyword for specifying a list of dependent libraries
* Convert tabs to spaces

llvm-svn: 16558
2004-09-28 21:46:18 +00:00
Misha Brukman 40b4f6eca8 Added `zeroinitializer' keyword.
llvm-svn: 13253
2004-04-28 19:36:08 +00:00
Chris Lattner be3c688488 Teach emacs about the select instruction
llvm-svn: 12326
2004-03-12 05:54:48 +00:00
Chris Lattner 9b3c460a1e Make sure to syntax hilight the 'unwind' keyword!
llvm-svn: 9524
2003-10-27 05:09:15 +00:00
Chris Lattner 6ffa75a1ac Syntax highlight the new operators
llvm-svn: 9328
2003-10-21 15:37:09 +00:00
Chris Lattner 9865db1fcb Add support for the weak linkage specifier
llvm-svn: 9000
2003-10-10 04:56:26 +00:00
Chris Lattner 53d5dd7a16 Syntax hilight
llvm-svn: 8396
2003-09-08 18:07:57 +00:00
Misha Brukman 7170f65f1f * 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

llvm-svn: 7738
2003-08-11 19:10:02 +00:00
Misha Brukman b6073c3719 Removing personal name from source code.
llvm-svn: 6558
2003-06-03 00:59:24 +00:00
Misha Brukman ddbfa79371 Added the `to' keyword as in `cast <type> <data> to <type>'.
Cleaned up the header of the file (comments/description/etc).

llvm-svn: 6557
2003-06-03 00:57:41 +00:00
Chris Lattner 995ecdd8e9 Add support for new va_arg instruction
llvm-svn: 6026
2003-05-08 02:41:11 +00:00
Chris Lattner 3c5c9e176b Update to add new keywords
llvm-svn: 5846
2003-04-22 19:31:55 +00:00
Chris Lattner f0e92b575f Add missing keyword, add new linkage keywords
llvm-svn: 5785
2003-04-16 20:26:11 +00:00
Misha Brukman 4fb75da532 Added a major mode for Emacs to edit LLVM assembler code with syntax
highlighting.

llvm-svn: 4092
2002-10-09 00:30:20 +00:00