From d09c4ecb898173505213e2d45bda612c4591c553 Mon Sep 17 00:00:00 2001
From: Chris Lattner
Date: Thu, 17 May 2007 22:02:24 +0000
Subject: [PATCH] llvm-gcc now supports almost all gcc extensions. The key
missing one is builtin_apply.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37182 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/ReleaseNotes.html | 87 +++++++++++++-----------------------------
1 file changed, 26 insertions(+), 61 deletions(-)
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index bf2fd305eb6..9953d6ad78c 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -679,8 +679,6 @@ programs.
Optimization on most platforms "out-of-the-box". Please inquire on the
llvmdev mailing list if you are interested.
-FIXME: the list of supported stuff below needs to be updated. We do support
-tls now, what else??
@@ -689,85 +687,52 @@ tls now, what else??
-
-- "long double" is transformed by the front-end into "double". There is no
-support for floating point data types of any size other than 32 and 64
-bits.
+"long double" is silently transformed by the front-end into "double". There
+is no support for floating point data types of any size other than 32 and 64
+bits.
-- Although many GCC extensions are supported, some are not. In particular,
- the following extensions are known to not be supported:
-
- - Local Labels: Labels local to a block.
- - Nested Functions: As in Algol and Pascal, lexical scoping of functions.
- - Constructing Calls: Dispatching a call to another function.
- - Thread-Local: Per-thread variables.
- - Pragmas: Pragmas accepted by GCC.
-
-
- The following GCC extensions are partially supported. An ignored
- attribute means that the LLVM compiler ignores the presence of the attribute,
- but the code should still work. An unsupported attribute is one which is
- ignored by the LLVM compiler and will cause a different interpretation of
- the program.
+ llvm-gcc does not support __builtin_apply yet.
+ See Constructing Calls: Dispatching a call to another function.
+
+llvm-gcc partially supports tthese GCC extensions:
- - Variable Length:
- Arrays whose length is computed at run time.
- Supported, but allocated stack space is not freed until the function returns (noted above).
+ - Nested Functions: As in Algol and Pascal, lexical scoping of functions.
+ Nested functions are supported, but llvm-gcc does not support non-local
+ gotos or taking the address of a nested function.
- Function Attributes:
Declaring that functions have no side effects or that they can never
return.
- Supported: alias, constructor, destructor,
+ Supported: alias, always_inline, cdecl,
+ constructor, destructor,
deprecated, fastcall, format,
format_arg, non_null, noreturn, regparm
section, stdcall, unused, used,
visibility, warn_unused_result, weak
- Ignored: noinline,
- always_inline, pure, const, nothrow,
- malloc, no_instrument_function, cdecl
-
- Unsupported: All other target specific attributes
-
- - Variable Attributes:
- Specifying attributes of variables.
- Supported: alias, cleanup, common,
- nocommon, deprecated, dllimport,
- dllexport, section, transparent_union,
- unused, used, weak
-
- Unsupported: aligned, mode, packed,
- shared, tls_model,
- vector_size, all target specific attributes.
-
-
- - Type Attributes: Specifying attributes of types.
- Supported: transparent_union, unused,
- deprecated, may_alias
-
- Unsupported: aligned, packed,
- all target specific attributes.
-
- - Other Builtins:
- Other built-in functions.
- We support all builtins which have a C language equivalent (e.g.,
- __builtin_cos), __builtin_alloca,
- __builtin_types_compatible_p, __builtin_choose_expr,
- __builtin_constant_p, and __builtin_expect
- (currently ignored). We also support builtins for ISO C99 floating
- point comparison macros (e.g., __builtin_islessequal),
- __builtin_prefetch, __builtin_popcount[ll],
- __builtin_clz[ll], and __builtin_ctz[ll].
+ Ignored: noinline, pure, const, nothrow,
+ malloc, no_instrument_function
+
- The following extensions are known to be supported:
+llvm-gcc supports the vast majority of GCC extensions, including:
+ - Pragmas: Pragmas accepted by GCC.
+ - Local Labels: Labels local to a block.
+ - Other Builtins:
+ Other built-in functions.
+ - Variable Attributes:
+ Specifying attributes of variables.
+ - Type Attributes: Specifying attributes of types.
+ - Thread-Local: Per-thread variables.
+ - Variable Length:
+ Arrays whose length is computed at run time.
- Labels as Values: Getting pointers to labels and computed gotos.
- Statement Exprs: Putting statements and declarations inside expressions.
- Typeof:
typeof
: referring to the type of an expression.