Anders Carlsson
8783543a6f
Don't assert when generating code with static_asserts.
...
llvm-svn: 73208
2009-06-11 21:22:55 +00:00
Eli Friedman
7433a248e3
PR4371: Reduce the inlining threshold outside of -O3. This makes
...
the clang inlining threshold consistent with the threshold for llvm-gcc.
llvm-svn: 73204
2009-06-11 20:33:41 +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
Ted Kremenek
ea675cf6a3
Add summary lookup for IOServiceGetMatchingService.
...
Convert tabs to spaces.
llvm-svn: 73198
2009-06-11 18:17:24 +00:00
Ted Kremenek
a74ead4103
Refactor some function name -> summary lookup using a switch statement.
...
llvm-svn: 73197
2009-06-11 18:10:48 +00:00
Douglas Gregor
74eba0b679
Once we have deduced the template arguments of a class template
...
partial specialization, substitute those template arguments back into
the template arguments of the class template partial specialization to
see if the results still match the original template arguments.
This code is more general than it needs to be, since we don't yet
diagnose C++ [temp.class.spec]p9. However, it's likely to be needed
for function templates.
llvm-svn: 73196
2009-06-11 18:10:32 +00:00
Anders Carlsson
40ed344c92
Add a null check that fixes the crash in PR4362, and make sure to instantiate non-type template arguments.
...
llvm-svn: 73193
2009-06-11 16:06:49 +00:00
Zhongxing Xu
519a47d4bd
Bind the mistakenly generated nonloc::SymbolVal to struct correctly. See the
...
comments for added test case for details.
llvm-svn: 73189
2009-06-11 09:11:27 +00:00
Zhongxing Xu
d85a991253
Use more robust getAsRecordType() method.
...
llvm-svn: 73186
2009-06-11 07:27:30 +00:00
Eli Friedman
dd49ee3fb4
Make sure to calculate value-dependence correctly when deal with ICEs.
...
(Actually, this isn't precisely correct, but it doesn't make
sense to query whether an expression that isn't an ICE is
value-dependent anyway.)
llvm-svn: 73179
2009-06-11 01:11:20 +00:00
Eli Friedman
6d692cc2e8
PR4364: fix parsing 'typename' in an expression.
...
llvm-svn: 73177
2009-06-11 00:33:41 +00:00
Douglas Gregor
c43620dedf
Separate TemplateArgument instantiation logic into its own function. No functionality change.
...
llvm-svn: 73176
2009-06-11 00:06:24 +00:00
Douglas Gregor
637d9984f0
Template argument deduction for member pointers.
...
Also, introduced some of the framework for performing instantiation as
part of template argument deduction.
llvm-svn: 73175
2009-06-10 23:47:09 +00:00
Daniel Dunbar
76d864c7e7
Support complex properties, ivars and message expressions.
...
llvm-svn: 73158
2009-06-10 04:38:50 +00:00
Eli Friedman
f479984762
PR4350: Make sure we don't create invalid printf attributes. This isn't
...
visible anywhere normally because the printf format checks for
this case, and we don't print out attribute values anywhere. Original
patch by Roberto Bagnara.
llvm-svn: 73157
2009-06-10 04:01:38 +00:00
Eli Friedman
28a00aa646
PR4353: Add support for \E as a character escape.
...
llvm-svn: 73153
2009-06-10 01:32:39 +00:00
Douglas Gregor
0bdc1f5eef
Handle member pointer types with dependent class types (e.g., int
...
T::*) and implement template instantiation for member pointer types.
llvm-svn: 73151
2009-06-09 22:17:39 +00:00
Douglas Gregor
4fbe3e3014
Implement template argument deduction for class template
...
specialization types. As the example shows, we can now compute the
length of a type-list using a template metaprogram and class template
partial specialization.
llvm-svn: 73136
2009-06-09 16:35:58 +00:00
Eli Friedman
53339e0fdb
Add more parser support for Microsoft extensions.
...
llvm-svn: 73101
2009-06-08 23:27:34 +00:00
Daniel Dunbar
eed62b7c4b
Add stack alignment to x86_64 target data.
...
- <rdar://problem/6948443> WARNING: Linking two modules of different data
layouts!
llvm-svn: 73093
2009-06-08 22:39:13 +00:00
Daniel Dunbar
367dbb9760
Forward -C and -CC to clang.
...
- <rdar://problem/6945384> Driver should pass down -C and -CC
llvm-svn: 73087
2009-06-08 21:48:20 +00:00
Eli Friedman
ebb9e4dc4d
Minor tweaks to the Windows target.
...
llvm-svn: 73083
2009-06-08 21:16:17 +00:00
Daniel Dunbar
db09702e2a
PR4016: Forward -fno-show-source-location to clang.
...
llvm-svn: 73082
2009-06-08 21:13:54 +00:00
Eli Friedman
cf432d3c7b
PR4346: add "R" asm register constraint.
...
llvm-svn: 73081
2009-06-08 20:45:44 +00:00
Anders Carlsson
096e6eeb68
Address comments from Doug.
...
llvm-svn: 73077
2009-06-08 19:22:23 +00:00
Douglas Gregor
f661016b03
Document the template argument deduction patterns that Anders' patch supports
...
llvm-svn: 73071
2009-06-08 15:59:14 +00:00
Anders Carlsson
2128ec7cdd
Template argument deduction for function types.
...
llvm-svn: 73070
2009-06-08 15:19:08 +00:00
Eli Friedman
06de2b5525
Add real parsing for __declspec. It doesn't make much of a difference
...
at the moment because we ignore the result.
llvm-svn: 73056
2009-06-08 07:21:15 +00:00
Eli Friedman
aa27a87ab3
Misc minor fixes for clang for the Windows target.
...
llvm-svn: 73050
2009-06-08 06:11:14 +00:00
Eli Friedman
a6638ca3a3
Delete method which is now trivial.
...
llvm-svn: 73043
2009-06-08 05:08:54 +00:00
Eli Friedman
9e81b02ec5
Don't allow defining a block with a non-prototype type. Remove a
...
hack which introduces some strange inconsistencies in compatibility
for block pointers.
Note that unlike an earlier revision proposed on cfe-commits, this patch
still allows declaring block pointers without a prototype.
llvm-svn: 73041
2009-06-08 04:24:21 +00:00
Anders Carlsson
0880e9f58d
Instantiation support for more Obj-C expressions, string literals, @selector and @protocol expressions.
...
llvm-svn: 73036
2009-06-07 19:51:47 +00:00
Anders Carlsson
315d2294f8
Template instantiation support for Obj-C @encode expressions.
...
llvm-svn: 73034
2009-06-07 18:45:35 +00:00
Zhongxing Xu
aaa86d07a0
Remove dead code: 'NewEntry' is not used.
...
llvm-svn: 73027
2009-06-07 11:18:14 +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
07bbeca406
PR4339: make sure to properly extend/trunc the index of a vector element
...
insert/extract; the relevant instructions are defined to take only an
i32.
llvm-svn: 73005
2009-06-06 19:09:26 +00:00
Fariborz Jahanian
28c5a8ba4a
Adds synthesize ivars to DeclContext.
...
llvm-svn: 73000
2009-06-06 16:36:41 +00:00
Anton Korobeynikov
18adbf5f07
Add new ABIArgInfo kind: Extend. This allows target to implement its own argument
...
zero/sign extension logic (consider, e.g. target has only 64 bit registers and thus
i32's should be extended as well).
llvm-svn: 72998
2009-06-06 09:36:29 +00:00
Eli Friedman
6813eb125f
Get rid of a bunch of dead builtins.
...
llvm-svn: 72996
2009-06-06 08:31:46 +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
Anders Carlsson
8544647e9c
Make ParmVarDecl::getDefaultArg() more robust, it now asserts that the argument is not unparsed. Add a new hasDefaultArg() and use it in places where getDefaultArg() was called when the argument was unparsed.
...
llvm-svn: 72984
2009-06-06 04:14:07 +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
2696b1e25e
Default builtin creation to off; we don't really want to be doing it
...
without a relevant source location anyway. Fixes the issue with weird
warnings when including objc/Object.h on OS X.
llvm-svn: 72978
2009-06-06 02:08:44 +00:00
Mike Stump
dedc0968cf
Avoid warnings.
...
llvm-svn: 72976
2009-06-05 23:49:48 +00:00
Mike Stump
cbc2bcaf17
As an optimization, we maintain a cache of generated
...
___Block_byref_id_object_dispose and ___Block_byref_id_object_copy
functions so that we can simply reuse instead of creating a new one.
Additionally, add an assert to ensure no one yet tries to align a
__block variable beyond the alignment of a pointer as the codegen is
incomplete.
llvm-svn: 72974
2009-06-05 23:26:36 +00:00