Douglas Gregor
274a6b4f2d
Update Clang to include the InitializeAllTargets and
...
InitializeAllAsmPrinters LLVM headers. Also includes some minor fixes
for the CMake-based build with Xcode.
llvm-svn: 73544
2009-06-16 20:13:51 +00:00
Eli Friedman
9d79bdaaad
Following gcc, hide the hack to include the SSE2 intrinsics from
...
xmmintrin.h in an ifdef.
llvm-svn: 73200
2009-06-11 18:50:02 +00:00
Eli Friedman
e9ff191459
Remove a few more vector builtins.
...
llvm-svn: 73022
2009-06-07 09:32:56 +00:00
Daniel Dunbar
fcec758f4e
xmmintrin needs to include emmintrin, Darwin system headers seem to depend on it
...
defining m128[id], at least.
llvm-svn: 73021
2009-06-07 08:33:23 +00:00
Eli Friedman
5a996fc0fc
Now that LLVM CodeGen can handle the generic variations a bit better,
...
get rid of a few more clang vector builtins.
llvm-svn: 73015
2009-06-07 07:12:56 +00:00
Douglas Gregor
e183993ffa
CMake: Install Clang's headers into the right place in the build tree, for regression testing
...
llvm-svn: 73014
2009-06-07 07:09:23 +00:00
Eli Friedman
4d8d7d3263
Replace more calls to builtins with generic code.
...
llvm-svn: 72995
2009-06-06 08:08:06 +00:00
Eli Friedman
f5f303f92f
Fix obvious typo.
...
llvm-svn: 72994
2009-06-06 07:42:17 +00:00
Eli Friedman
d00fd2885e
Fix some casts to work without -flax-vector-conversions.
...
llvm-svn: 72981
2009-06-06 03:45:06 +00:00
Eli Friedman
ebd9314f32
Misc fixes to MMX/SSE intrinsics: a few small bug fixes, and getting rid
...
of calls to builtins for constructs which can be expressed directly.
llvm-svn: 72979
2009-06-06 02:13:04 +00:00
Eli Friedman
f83c258eae
Add aliases for a couple of SSE intrinsics. Patch by Ed Schouten.
...
llvm-svn: 72717
2009-06-02 05:55:48 +00:00
Anders Carlsson
2081200b8c
Add 'cmp' SSE builtins and get rid of a bunch of other builtins.
...
llvm-svn: 72032
2009-05-18 19:16:46 +00:00
Eli Friedman
7df3447c10
Fix for PR3841: follow gcc's example and fall back to the system
...
stdint.h unless we are freestanding.
Any suggestions here are welcome.
llvm-svn: 70806
2009-05-03 23:00:48 +00:00
Anders Carlsson
9603143c5d
Fix tyop in SSSE3 header (6808876).
...
llvm-svn: 69623
2009-04-20 20:31:10 +00:00
Chris Lattner
61639745b6
glibc plays some weird games with multiple different definitions of
...
int8_t and games it with strange *_defined macros. Emulate its weirdness
for better compatibility with linux etc. Problem pointed out by anders
johnson.
llvm-svn: 69458
2009-04-18 19:11:11 +00:00
Chris Lattner
ff8a9e6ee4
fix misspelt attribute.
...
llvm-svn: 69362
2009-04-17 17:55:23 +00:00
Chris Lattner
33d840cc8f
define __va_copy unconditionally, but va_copy only in c99 or non-ansi mode.
...
Fixes rdar://6759546, some code that actually used __va_copy because they
thought it was "more portable".
llvm-svn: 68503
2009-04-07 05:12:42 +00:00
Anders Carlsson
57640939c2
Fix typo.
...
llvm-svn: 68466
2009-04-06 21:55:22 +00:00
Chris Lattner
f16f90b4fd
add support for the LONG_LONG_MIN/LONG_LONG_MAX/ULONG_LONG_MAX limits.h GNU extensions.
...
rdar://6740292
llvm-svn: 68169
2009-04-01 00:44:37 +00:00
Daniel Dunbar
2e8536cfaa
Only intptr_t is protected by __intptr_t_defined.
...
llvm-svn: 67018
2009-03-15 03:16:47 +00:00
Chris Lattner
5a5194fec3
fix inverted conditional, rdar://6633188
...
llvm-svn: 65704
2009-02-28 18:53:33 +00:00
Daniel Dunbar
3283ff5088
Put compiler headers in <prefix>/lib/clang/1.0/include (vs
...
<prefix>/Headers, gross).
llvm-svn: 65247
2009-02-21 20:52:41 +00:00
Howard Hinnant
9c788c081c
testing (reverted)
...
llvm-svn: 64991
2009-02-19 00:27:58 +00:00
Howard Hinnant
2d12fbdc2e
testing
...
llvm-svn: 64990
2009-02-19 00:25:33 +00:00
Douglas Gregor
ac3865c387
Remove pointless backslash
...
llvm-svn: 64965
2009-02-18 22:24:55 +00:00
Douglas Gregor
c5c0488338
Add an unavailable __tg_promote function to attract incorrect uses of type-generic macros, rom Howard Hinnant.
...
llvm-svn: 64919
2009-02-18 17:23:05 +00:00
Chris Lattner
abbd427cd0
initial reimplement tgmath.h, written by Howard Hinnant!
...
llvm-svn: 64826
2009-02-17 22:14:32 +00:00
Daniel Dunbar
c9feeb54a5
Spell __always_inline__ correctly.
...
llvm-svn: 64757
2009-02-17 07:57:58 +00:00
Anders Carlsson
b317efdf81
Add SSSE3 header
...
llvm-svn: 64735
2009-02-17 03:05:04 +00:00
Chris Lattner
325dec7343
remove dead macros
...
llvm-svn: 64725
2009-02-17 02:42:31 +00:00
Chris Lattner
2ca19c7ee7
explicitly cast integers to double. This a) silences any
...
possible future "data loss" warnings, and b) makes it intensely
obvious to the user what the impl of these functions do in a
ambiguity error.
llvm-svn: 64724
2009-02-17 02:41:36 +00:00
Chris Lattner
0021110773
asin support. No we don't care about complex int :)
...
llvm-svn: 64723
2009-02-17 02:37:35 +00:00
Chris Lattner
dd0c64b102
hand macro expand this to make "candidate" set printing more useful. However,
...
Now no candidates are printed because the 'notes' are in a system header. :(
#include <tgmath-sofar.h>
double foo2(short *x) {
return acos(x);
}
t.c:10:10: error: no matching function for call to '__tg_acos'; candidates are:
return acos(x);
^~~~
1 diagnostic generated.
llvm-svn: 64722
2009-02-17 02:30:54 +00:00
Chris Lattner
bde5bd46b3
add support for integers to tgmath functions. I apparently need to provide
...
all the integer types other than char/short to avoid overload ambiguities.
llvm-svn: 64721
2009-02-17 02:22:33 +00:00
Chris Lattner
4e843feddc
start converting over to attr(overloadable). Unfortunately, this
...
produces really horrible diagnostics when overload ambiguities
happen:
t.c:10:10: error: call to '__tg_acos' is ambiguous; candidates are:
return acos(x);
^~~~
In file included from t.c:1:
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
/Users/sabre/llvm/Debug/Headers/tgmath-sofar.h:49:1: note: candidate function
__TG_RC_1(x, acos, cacos)
^
A possible fix is to just not use macros for this, which I'll probably go for,
but it would be nice to emit the type at the call, so we know what we asked for!
llvm-svn: 64720
2009-02-17 02:14:31 +00:00
Mike Stump
eff0cc98cf
Fix 80col violations.
...
llvm-svn: 64559
2009-02-14 18:02:21 +00:00
Anders Carlsson
11352f9d63
Fix more xmmintrin.h typos
...
llvm-svn: 64537
2009-02-14 04:01:38 +00:00
Anders Carlsson
30c22d86e8
Fix an error in _mm_loaddup_pd that Eli noticed.
...
llvm-svn: 64522
2009-02-14 01:06:58 +00:00
Anders Carlsson
823c02eaab
Add the nodebug attribute to intrinsics
...
llvm-svn: 64519
2009-02-14 01:00:11 +00:00
Chris Lattner
39bb0182bd
anders johnson points out that some software depends on the
...
definition of __intptr_t_defined when stdint.h defines intptr_t.
llvm-svn: 64497
2009-02-13 22:43:13 +00:00
Chris Lattner
7e4c81c8c6
Give TargetInfo a new IntPtrType to hold the intptr_t type for
...
a target.
Make Preprocessor.cpp define a new __INTPTR_TYPE__ macro based on this.
On linux/32, set intptr_t to int, instead of long. This fixes PR3563.
llvm-svn: 64495
2009-02-13 22:28:55 +00:00
Mike Stump
5b31ed3ff0
80col.
...
llvm-svn: 64450
2009-02-13 14:24:50 +00:00
Mike Stump
6b63074de9
Fix limits.h for linux, as glibc does a #include_next unless
...
_GCC_LIMITS_H_ is defined, when __GNUC__ is defined.
Also, we need to stay away from possible conflicts with header guards.
We should use CLANG_ to prefix all header guards.
llvm-svn: 64408
2009-02-12 23:06:31 +00:00
Anders Carlsson
d0d8c540ca
Add pmmintrin.h header.
...
llvm-svn: 64291
2009-02-11 06:39:50 +00:00
Anders Carlsson
5bc94e625b
Fix some mistakes I made when I tried to decipher the Intel documentation of the MXCSR register
...
llvm-svn: 64290
2009-02-11 06:29:32 +00:00
Anders Carlsson
7325b61e74
Fix an #ifndef that should be an #ifdef instead.
...
llvm-svn: 64206
2009-02-10 06:18:19 +00:00
Chris Lattner
4293c8935a
C++ really shouldn't check these #defines, thanks to Howard
...
for pointing this out!
llvm-svn: 64037
2009-02-07 22:21:31 +00:00
Chris Lattner
6726d42059
remove two eroneous suffixes, these promote to int. Thanks to Neil
...
for pointing this out.
llvm-svn: 64011
2009-02-07 08:49:37 +00:00
Chris Lattner
04441a10a5
add note, weirdness.
...
llvm-svn: 64010
2009-02-07 07:13:51 +00:00
Chris Lattner
a7cc1267cf
fix some missing parens, thanks for Eli's review!
...
Obviously I make a miserable header developer :)
llvm-svn: 64009
2009-02-07 06:42:04 +00:00
Chris Lattner
14bc3528f5
fix a typo that Sebastian noticed!
...
llvm-svn: 64008
2009-02-07 06:38:41 +00:00
Chris Lattner
5455db4273
make sure that UINTMAX_MAX has an unsigned type. This assumes that
...
uintmax_t is unsigned long long, which is not optimal, but is assumed
elsewhere already.
llvm-svn: 64007
2009-02-07 06:38:06 +00:00
Chris Lattner
6bda45cec0
make various MAX/MIN constants be preprocessor constants, not C constants.
...
Thanks to Eli for pointing this out.
llvm-svn: 64006
2009-02-07 06:33:44 +00:00
Chris Lattner
19179ad680
start of tgmath, yuck.
...
llvm-svn: 63990
2009-02-07 00:47:29 +00:00
Chris Lattner
01af63beb4
Apparently it is important to define intptr_t and uintptr_t to
...
long instead of int. This is because system heaers like to redefine
typedefs and that is an error if they don't exactly match. Use long
for intptr_t on all systems where long is the right size.
llvm-svn: 63984
2009-02-07 00:23:17 +00:00
Sebastian Redl
ad41b83816
Fix some errors in the new stdint.h.
...
llvm-svn: 63982
2009-02-06 23:57:52 +00:00
Chris Lattner
6fbf3a07bc
only define MB_LEN_MAX if the system <limits.h> doesn't.
...
don't typecast CHAR_MIN to char, this makes it not a PP constant
and gives it the wrong unpromoted type. Thanks to Sebastian for
pointing this out!
llvm-svn: 63980
2009-02-06 23:29:39 +00:00
Chris Lattner
404c2fb9cc
add a stdint.h header.
...
llvm-svn: 63977
2009-02-06 22:59:47 +00:00
Chris Lattner
0b0cfbcb62
correct description
...
llvm-svn: 63947
2009-02-06 18:45:59 +00:00
Chris Lattner
1cee17aa5f
first hack at limits.h
...
llvm-svn: 63945
2009-02-06 18:34:27 +00:00
Mike Stump
f7444aa8df
Avoid creating .dir files in the installation area.
...
llvm-svn: 62744
2009-01-22 02:53:03 +00:00
Anders Carlsson
43c2bab6d3
Fix more bugs I discovered
...
llvm-svn: 62656
2009-01-21 01:49:39 +00:00
Anders Carlsson
7322ea25a5
Fix some errors I noticed
...
llvm-svn: 62620
2009-01-20 21:51:44 +00:00
Anders Carlsson
bfd47a3c00
Add mm_malloc.h, patch by Sam Weinig.
...
llvm-svn: 61954
2009-01-08 23:30:09 +00:00
Anders Carlsson
f562b39e80
Add a MS specific intrinsic.
...
llvm-svn: 61446
2008-12-27 04:26:15 +00:00
Anders Carlsson
a7e0e61b9d
Eli noticed that I had forgotten some #defines. Add them.
...
llvm-svn: 61445
2008-12-26 22:49:10 +00:00
Anders Carlsson
70f8da06d3
Add float.h header. Eli, please review :)
...
llvm-svn: 61444
2008-12-26 17:10:18 +00:00
Anders Carlsson
88b53663fb
Fix implementation of _mm_pause.
...
llvm-svn: 61441
2008-12-26 02:22:10 +00:00
Anders Carlsson
19ef5d49d4
OK, all tests pass. Let's start using the SSE2 header
...
llvm-svn: 61440
2008-12-26 00:57:11 +00:00
Anders Carlsson
37ba1a5927
Fix formatting
...
llvm-svn: 61435
2008-12-26 00:50:47 +00:00
Anders Carlsson
37c2371a88
Add _mm_pause and _MM_SHUFFLE
...
llvm-svn: 61434
2008-12-26 00:49:43 +00:00
Anders Carlsson
85eb1247a3
More SSE2 intrinsics
...
llvm-svn: 61433
2008-12-26 00:45:50 +00:00
Anders Carlsson
a0d5ca2773
More SSE2 intrinsics
...
llvm-svn: 61432
2008-12-25 23:48:58 +00:00
Anders Carlsson
51beccbd0b
Make _mm_add_si64 inlined
...
llvm-svn: 61428
2008-12-25 07:07:08 +00:00
Anders Carlsson
a283f91a67
Add integer arithmetic intrinsics
...
llvm-svn: 61412
2008-12-24 02:41:00 +00:00
Anders Carlsson
b08ac0b2b0
Add store/set/load intrisics
...
llvm-svn: 61411
2008-12-24 02:11:54 +00:00
Anders Carlsson
f15e71d170
Start implementing some SSE2 instructions
...
llvm-svn: 61410
2008-12-24 01:45:22 +00:00
Anders Carlsson
c72502308d
Fix test failures noticed by Fariborz.
...
llvm-svn: 61334
2008-12-22 17:42:23 +00:00
Anders Carlsson
e5f993da3d
Flip the switch and start using the new xmmintrin.h
...
llvm-svn: 61332
2008-12-22 07:36:02 +00:00
Anders Carlsson
27046fc4e6
Comment out _mm_insert_pi16 for now
...
llvm-svn: 61331
2008-12-22 07:34:23 +00:00
Anders Carlsson
5aa0c50e29
Implement the last intrinsics, _mm_insert_pi16 is the last remaining one now.
...
llvm-svn: 61330
2008-12-22 07:08:03 +00:00
Anders Carlsson
25b16dbcd8
Add macros
...
llvm-svn: 61328
2008-12-22 05:42:03 +00:00
Anders Carlsson
8b79fc8aab
Add misc intrinsics
...
llvm-svn: 61327
2008-12-22 05:20:34 +00:00
Anders Carlsson
53b3d4a32a
Add control register intrinsics
...
llvm-svn: 61326
2008-12-22 05:00:07 +00:00
Anders Carlsson
4cf8ac8bb8
Add integer intrinsics
...
llvm-svn: 61325
2008-12-22 04:55:36 +00:00
Anders Carlsson
70d5f46646
Add cacheability intrinsics
...
llvm-svn: 61323
2008-12-22 03:50:21 +00:00
Anders Carlsson
1e71996bd1
Add store intrinsics
...
llvm-svn: 61322
2008-12-22 03:16:40 +00:00
Anders Carlsson
c7d0d8b60d
Add set intrinsics
...
llvm-svn: 61321
2008-12-22 02:51:35 +00:00
Anders Carlsson
13fd3a1411
Add load intrinsics
...
llvm-svn: 61320
2008-12-22 02:43:30 +00:00
Anders Carlsson
1e4a9b7c0d
_mm_cvtsi64_ss is 64-bit only, so wrap it in #ifdef __x86_64__
...
Add composite conversion intrinsics - will implement them shortly.
llvm-svn: 61318
2008-12-22 01:26:50 +00:00
Anders Carlsson
157643c8d7
Add a couple of conversion intrinsics
...
llvm-svn: 61317
2008-12-22 00:48:30 +00:00
Anders Carlsson
60053dd2a5
Add comparison intrinsics.
...
llvm-svn: 61316
2008-12-22 00:28:39 +00:00
Anders Carlsson
2df1ce496e
Check in an in-progress version of xmmintrin.h that I had lying around.
...
llvm-svn: 61315
2008-12-22 00:01:20 +00:00
Douglas Gregor
f7ab50df29
Define NULL to __null in C++, so that it's guaranteed to have the same size as a pointer
...
llvm-svn: 60355
2008-12-01 17:20:57 +00:00
Anders Carlsson
6b0dc85119
#define NULL as 0 when compiling as C++. This fixes the carbon.cpp and cocoa.mm test failures.
...
llvm-svn: 58685
2008-11-04 06:53:14 +00:00
Daniel Dunbar
dc4030454d
Fix mmintrin.h to use proper definition of functions taking no
...
arguments.
- More important than it looks, this inhibits trivial inlining
otherwise.
llvm-svn: 58360
2008-10-29 03:37:55 +00:00
Daniel Dunbar
42c68f26cf
Mark mmintrin functions static inline, this ensures they don't end up
...
being emitted unless needed and doesn't inhibit inlining.
- Can be fixed once we implement C99 inline semantics.
llvm-svn: 58303
2008-10-28 00:06:25 +00:00
Oscar Fuentes
07d9f9a6ec
CMake: Builds and installs clang binary and libs (no docs yet). It
...
must be under the `tools' subdirectory of the LLVM *source* tree.
llvm-svn: 58180
2008-10-26 00:56:18 +00:00
Anders Carlsson
1e18220dc4
Actually use the mmintrin.h header, it's good enough now.
...
llvm-svn: 57150
2008-10-06 04:49:00 +00:00
Anders Carlsson
f407150c06
Apparently gcc uses pi64 for the shift intrinsics.
...
llvm-svn: 57145
2008-10-06 02:07:50 +00:00
Anders Carlsson
c442c92b6f
Remove copyright notice, we decided not to have them.
...
llvm-svn: 57118
2008-10-05 17:21:08 +00:00
Eli Friedman
bb936ce207
Implementation of stdarg.h.
...
llvm-svn: 51672
2008-05-29 10:40:55 +00:00
Eli Friedman
bcfa2d75d7
Protect iso646.h from C++ (although I can't imagine why someone would
...
need it...). Patch by Mike Stump.
llvm-svn: 51360
2008-05-21 03:11:31 +00:00
Eli Friedman
9e9b046ac9
Add a couple more headers. stddef was discussed on cfe-dev, and
...
consensus was that it was fine; iso646 is trivial.
We actually don't need that many headers overall... on Ubuntu, at least,
all we need are stdint.h, stdarg.h, limits.h, and float.h to stop
depending on having gcc's headers around for normal code.
On a side note, the path searching needs some improvement; I had to
hardcode the path to my header directory into clang.cpp to get the
driver to use it consistently.
llvm-svn: 51317
2008-05-20 13:34:26 +00:00
Eli Friedman
f0d0e9e174
Use double-underscores in front of all non-keywords to protect against
...
#define pollution.
llvm-svn: 51128
2008-05-14 20:32:22 +00:00
Eli Friedman
e94e0f66cd
Make header use the new __builtin_shufflevector builtin.
...
llvm-svn: 51117
2008-05-14 20:11:29 +00:00
Chris Lattner
7a51313d8a
Make a major restructuring of the clang tree: introduce a top-level
...
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
2008-03-15 23:59:48 +00:00