]>
granicus.if.org Git - clang/log
Argyrios Kyrtzidis [Mon, 23 Aug 2010 07:12:16 +0000 (07:12 +0000)]
In Sema::AddBuiltinOperatorCandidates, candidate pointer types set can also contain a ObjCObjectPointerType since r111699.
Don't assume that they are only PointerTypes or we will crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111798
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Aug 2010 06:56:36 +0000 (06:56 +0000)]
chandlerc pointed out that ending a line with /\ is not very friendly. :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111797
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Aug 2010 06:53:58 +0000 (06:53 +0000)]
Kill off Parser::TemplateParameterList to avoid misparses.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111796
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Aug 2010 06:44:23 +0000 (06:44 +0000)]
Sundry incremental steps towards killing off Action.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111795
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 23 Aug 2010 05:26:13 +0000 (05:26 +0000)]
fix rdar://
8340348 , a miscompile of boost that was exposed by r109848.
That revision started classifying truly empty structs like "Y" and "X"
as being NoClass/NoClass and turning them into 'ignore'. The call code
turns around and allocates space for the ignored argument with
GetUndefRValue. The bug is that GetUndefRValue would return the address
as undef, instead of returning an object with a defined address but
undefined contents.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111794
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Mon, 23 Aug 2010 01:37:32 +0000 (01:37 +0000)]
Adjust code placement.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111790
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Aug 2010 01:21:21 +0000 (01:21 +0000)]
Abstract out everything having to do with member pointers into the ABI
class; they should just be completely opaque throughout IR gen now,
although I haven't really audited that.
Fix a bug apparently inherited from gcc-4.2 where we failed to null-check
member data pointers when performing derived-to-base or base-to-derived
conversions on them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111789
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Mon, 23 Aug 2010 01:17:59 +0000 (01:17 +0000)]
Extract a method to check whether a function is the global placement
operator new[].
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111788
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 21:01:12 +0000 (21:01 +0000)]
Go back to asking CodeGenTypes whether a type is zero-initializable.
Make CGT defer to the ABI on all member pointer types.
This requires giving CGT a handle to the ABI.
It's way easier to make that work if we avoid lazily creating the ABI.
Make it so.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111786
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 22 Aug 2010 20:38:05 +0000 (20:38 +0000)]
Add x86intrin.h which is generic x86 intrinsics for more than just Intel. Thus
far, this just #include's immintrin.h for compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111785
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 22 Aug 2010 18:27:02 +0000 (18:27 +0000)]
Do not elide copy construction when we're performing base-class initialization
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111783
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 22 Aug 2010 18:26:35 +0000 (18:26 +0000)]
Eliminate a stale assertion. Fixes Clang self-host.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111782
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 22 Aug 2010 17:20:18 +0000 (17:20 +0000)]
Preserve the zero-initialization and construction-kind settings when
instantiating CXXConstructExpr expressions.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111780
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Sun, 22 Aug 2010 16:15:35 +0000 (16:15 +0000)]
When performing value-initialization for a class with a non-trivial,
implicitly-defined default constructor, zero-initialize the memory
before calling the default constructor. Previously, we would only
zero-initialize in the case of a trivial default constructor.
Also, simplify the hideous logic that determines when we have a
trivial default constructor and, therefore, don't need to emit any
call at all.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111779
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 11:04:31 +0000 (11:04 +0000)]
Clean up a very silly use of first-class aggregates.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111777
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 10:59:02 +0000 (10:59 +0000)]
Experiment with using first-class aggregates to represent member function
pointers. I find the resulting code to be substantially cleaner, and it
makes it very easy to use the same APIs for data member pointers (which I have
conscientiously avoided here), and it avoids a plethora of potential
inefficiencies due to excessive memory copying, but we'll have to see if it
actually works.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111776
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 08:30:07 +0000 (08:30 +0000)]
Extract member function pointer comparison and null comparison into
the ABI code. Implement correct semantics for these on ARM.
I believe this completes the implementation of member function pointers
on ARM.
I think I'm going to switch member function pointers over to be
non-aggregates while I have all this in mind.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111774
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chandler Carruth [Sun, 22 Aug 2010 06:56:37 +0000 (06:56 +0000)]
Add two new enumerations to the unsupported list for Windows so that all cases
are handled.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111773
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 06:43:33 +0000 (06:43 +0000)]
Abstract out member-pointer creation. I'm really unhappy about the current
duplication between the constant and non-constant paths in all of this.
Implement ARM ABI semantics for member pointer constants and conversion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111772
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 04:16:24 +0000 (04:16 +0000)]
Abstract more member-pointerness out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111771
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 03:04:22 +0000 (03:04 +0000)]
Abstract out member-pointer conversions.
Pretty much everything having to do with member pointers is ABI-specific.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111770
91177308 -0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Sun, 22 Aug 2010 01:00:03 +0000 (01:00 +0000)]
Detabify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 00:59:17 +0000 (00:59 +0000)]
Implement the call parts of the member-function-pointer ARM C++ ABI.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111766
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sun, 22 Aug 2010 00:05:51 +0000 (00:05 +0000)]
Extract calls to method pointers out as an ABI routine.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111752
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Aug 2010 22:46:04 +0000 (22:46 +0000)]
The ARM C++ ABI is sufficiently different from the Itanium C++ ABI that
it deserves its own enumerator. Obviously the implementations should
closely follow the Itanium ABI except in cases of divergence.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111749
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 21 Aug 2010 21:55:07 +0000 (21:55 +0000)]
Visual Studio tools used on win32 hosts when targeting win32.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111748
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 21 Aug 2010 17:11:09 +0000 (17:11 +0000)]
twik to my previous patch for pr7936.
Build qualified version of ObjC pointers (not pointers) when
doing overload resolution.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111740
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 21 Aug 2010 13:39:38 +0000 (13:39 +0000)]
Avoid including mm_malloc.h in a cc1 test, it pulls in system headers.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111738
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 12:24:38 +0000 (12:24 +0000)]
Place method near its class.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111737
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 11:05:46 +0000 (11:05 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111736
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 11:03:37 +0000 (11:03 +0000)]
Improve comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111735
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 11:00:26 +0000 (11:00 +0000)]
Remove a special case for OSAtomic functions. We can already bind and retrieve
with the same binding key. The only trick here is that sometimes the Symbolic
region is stored in with an LocAsInteger wrapper. We unwrap that in
SVal::getAsLocSymbol().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111734
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Aug 2010 09:40:31 +0000 (09:40 +0000)]
DeclPtrTy -> Decl *
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111733
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 08:55:42 +0000 (08:55 +0000)]
Remove dead code. We no longer need it because now we treat the first element
region and its base region as the same binding key.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111732
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 06:51:45 +0000 (06:51 +0000)]
remove unused variable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111731
91177308 -0d34-0410-b5e6-
96231b3b80d8
Zhongxing Xu [Sat, 21 Aug 2010 06:26:59 +0000 (06:26 +0000)]
When invalidating a struct region, whether its type definition exists is not
relavant any more, because we set its default value to a symbol, and the type of
default symbolic value is irrelavant.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111730
91177308 -0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 21 Aug 2010 06:05:06 +0000 (06:05 +0000)]
Fix typo in comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111729
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Sat, 21 Aug 2010 04:58:16 +0000 (04:58 +0000)]
This test needs a triple: it's checking the alignment of a pointer in bytes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111727
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 04:20:22 +0000 (04:20 +0000)]
IRgen: Set the alignment correctly when creating LValue for a decls.
- Fixes PR5598.
- Review appreciated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111726
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 04:13:07 +0000 (04:13 +0000)]
CodeGenFunction: Eliminate unused MakeQualifiers() function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111725
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 04:05:54 +0000 (04:05 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111724
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:58:45 +0000 (03:58 +0000)]
IRgen/CGValue: Give MakeAddrLValue() an alignment argument, and eliminate old form of MakeAddr().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111723
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:51:29 +0000 (03:51 +0000)]
IRgen: Move remaining LValue::Set... methods to LValue::set... (non-static) methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111722
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:44:13 +0000 (03:44 +0000)]
IRgen: Move remaining MakeAddr() calls to MakeAddrLValue().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111721
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:37:02 +0000 (03:37 +0000)]
IRgen: The CVR qualifiers in a subobject adjustment should just come from the
field (I think).
- Doug, please check.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111720
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:29:54 +0000 (03:29 +0000)]
IRgen/CGValue: Add getQuals(), so qualifiers can be modified on an LValue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111719
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:22:38 +0000 (03:22 +0000)]
IRgen/LValue: Add LValue::setNonGC instead of SetObjCNonGC, for consistency with isNonGC().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111718
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:15:20 +0000 (03:15 +0000)]
IRgen: Switch more MakeAddr() users to MakeAddrLValue; this time for calls which were previously not computing the qualifier list. In most cases, I don't think it matters, but I believe this is conservatively more correct / consistent.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111717
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:08:16 +0000 (03:08 +0000)]
IRgen: Switch a bunch of trivial MakeAddr calls to use MakeAddrLValue.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111716
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 03:01:12 +0000 (03:01 +0000)]
IRgen: Eliminate EmitPredefinedFunctionName(), it doesn't need to be factored out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111715
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:53:44 +0000 (02:53 +0000)]
IRgen: Add an LValue::MakeAddr variant which takes a type and uses that to build
the qualifiers.
Also, add CodeGenFunction::MakeAddrLValue() helper function which passes in the
ASTContext.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111714
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:46:28 +0000 (02:46 +0000)]
Improve test coverage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111712
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 21 Aug 2010 02:41:29 +0000 (02:41 +0000)]
Delete an obsolete comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111711
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:39:23 +0000 (02:39 +0000)]
IRgen/CGValue: Add alignment to LValue, and use that alignment when generating lvalue load/stores.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111710
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:31:58 +0000 (02:31 +0000)]
IRgen/LValue: Rename SetQualifiers() to Initialize().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111708
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:24:36 +0000 (02:24 +0000)]
IRgen: Change Emit{Load,Store}OfScalar to take a required Alignment argument and
update callers as best I can.
- This is a work in progress, our alignment handling is very horrible / sketchy -- I am just aiming for monotonic improvement.
- Serious review appreciated.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111707
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 21 Aug 2010 02:17:08 +0000 (02:17 +0000)]
IRgen: Use Ty consistently in this function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111705
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 21 Aug 2010 00:29:50 +0000 (00:29 +0000)]
filecheckize test
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111702
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 21 Aug 2010 00:27:00 +0000 (00:27 +0000)]
fix PR7943, a corner case with the GNU __VA_ARGS__ comma
swallowing extension.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111701
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 21 Aug 2010 00:17:33 +0000 (00:17 +0000)]
Contributed test case for PR7936
by Jean-Daniel Dupas.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111700
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Sat, 21 Aug 2010 00:10:36 +0000 (00:10 +0000)]
patch to support comparison involving
objctive-c pointer conversions. Fixes pr7936.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111699
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 23:35:55 +0000 (23:35 +0000)]
Fix an issue with writing to PCH another included PCH, introduced by the "using an AST on-disk hash table for name lookup" commit.
When including a PCH and later re-emitting to another PCH, the name lookup tables of DeclContexts
may be incomplete, since we now lazily deserialize the visible decls of a particular name.
Fix the issue by iterating over the un-deserialized visible decls and completing the lookup tables
of DeclContexts before writing them out.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111698
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 23:31:11 +0000 (23:31 +0000)]
Add an iterator to OnDiskChainedHashTable to allow iterating over all the key/data pairs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111697
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 20 Aug 2010 23:02:01 +0000 (23:02 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111693
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 20 Aug 2010 23:00:03 +0000 (23:00 +0000)]
Disallow direct inclusion of avxintrin.h. Users should include immintrin.h instead. This matches GCC's behavior.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111692
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 20 Aug 2010 22:39:57 +0000 (22:39 +0000)]
CreateTemporaryType doesn't needs its Context argument.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111688
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 20 Aug 2010 22:02:57 +0000 (22:02 +0000)]
Introduce a new temporary MDNode concept. Temporary MDNodes are
not part of the IR, are not uniqued, and may be safely RAUW'd.
This replaces a variety of alternate mechanisms for achieving
the same effect.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111682
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 20 Aug 2010 21:45:03 +0000 (21:45 +0000)]
Rmove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111680
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 20 Aug 2010 21:21:08 +0000 (21:21 +0000)]
objective-c ivar refactoring patch. Iterations
over ivars for a varienty of puposes is now
consolidated into two small routines; DeepCollectObjCIvars
and ShallowCollectObjCIvars.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111679
91177308 -0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Fri, 20 Aug 2010 20:54:15 +0000 (20:54 +0000)]
Add a workaround for PR7947, a crash trying to recover from invalid C++ code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111675
91177308 -0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 20 Aug 2010 20:37:16 +0000 (20:37 +0000)]
Add a comment.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111674
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 20 Aug 2010 18:27:03 +0000 (18:27 +0000)]
Another step in the process of making the parser depend on Sema:
- move DeclSpec &c into the Sema library
- move ParseAST into the Parse library
Reflect this change in a thousand different includes.
Reflect this change in the link orders.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111667
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 20 Aug 2010 18:04:07 +0000 (18:04 +0000)]
Add immintrin meta header.
- This is the official way to get AVX intrinsics, we might want to disallow
direct inclusion of avxintrin.h, just like GCC does.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111660
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Aug 2010 17:24:02 +0000 (17:24 +0000)]
alphabeticalize
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111654
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Aug 2010 17:23:33 +0000 (17:23 +0000)]
hopefully unbreak the msvc buildbot.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111653
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Aug 2010 16:57:37 +0000 (16:57 +0000)]
Fix a major regression with value-initialization of class types with
trivial default constructors. We're weren't zero-initializing them,
which manifested as <rdar://problem/
8320532 > (a regression in the GCC
test suite) and is likely to have caused significant other breakage.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111650
91177308 -0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 20 Aug 2010 16:47:17 +0000 (16:47 +0000)]
Fix header comments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111645
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Aug 2010 16:08:33 +0000 (16:08 +0000)]
fix some vector extractions to return properly zero extended values
(instead of sign extending) to match ICC. GCC is changing this in
a series of their own PRs (e.g. 41323).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111637
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:35 +0000 (16:04 +0000)]
Use the AST on-disk hash table for name lookup inside a DeclContext.
*Huge* improvement over the amount of deserializing that we do for C++ lookup.
e.g, if he have the Carbon header precompiled and include it on a file containing this:
int x;
these are the before/after stats:
BEFORE:
*** AST File Statistics:
578 stat cache hits
4 stat cache misses
548/30654 source location entries read (1.787695%)
15907/16501 types read (96.400223%)
53525/59955 declarations read (89.275291%)
33993/43525 identifiers read (78.099945%)
41516/51891 statements read (80.006165%)
77/5317 macros read (1.448185%)
0/6335 lexical declcontexts read (0.000000%)
1/5424 visible declcontexts read (0.018437%)
AFTER using the on-disk table:
*** AST File Statistics:
578 stat cache hits
4 stat cache misses
548/30654 source location entries read (1.787695%)
10/16501 types read (0.060602%)
9/59955 declarations read (0.015011%)
161/43525 identifiers read (0.369902%)
20/51891 statements read (0.038542%)
6/5317 macros read (0.112846%)
0/6335 lexical declcontexts read (0.000000%)
2/5424 visible declcontexts read (0.036873%)
There's only one issue affecting mostly the precompiled preambles which I will address soon.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111636
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:27 +0000 (16:04 +0000)]
Introduce the mechanism for building an AST on-disk hash table for name lookup inside a DeclContext but don't use it yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111635
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:20 +0000 (16:04 +0000)]
Refactoring; move the functionality of ASTWriter::GetOrCreateTypeID to the more generic
MakeTypeID template function which accepts a type and a function object that returns a TypeIdx.
MakeTypeID is in PCHCommon.h so that it can be used by ASTReader too.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111634
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:14 +0000 (16:04 +0000)]
Introduce ASTWriter::GetOrCreateTypeID and move most of the functionality of AddTypeRef there.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111633
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:09 +0000 (16:04 +0000)]
A bit of refactoring; Introduce ASTWriter::GetOrCreateTypeIdx and move the emission of types there.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111632
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:04:04 +0000 (16:04 +0000)]
Rename TypeIDs -> TypeIdxs. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111631
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:03:59 +0000 (16:03 +0000)]
serialization::TypeID is used with or without qualifiers, both as index and as index + qualifiers.
Disambiguate and provide some type safety by using a new class TypeIdx for the "TypeID as index" semantics.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111630
91177308 -0d34-0410-b5e6-
96231b3b80d8
Argyrios Kyrtzidis [Fri, 20 Aug 2010 16:03:52 +0000 (16:03 +0000)]
Share the common code of ComputeHash(Selector Sel) instead of keeping 2 copies in PCHReader and PCHWriter.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111629
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Aug 2010 06:06:41 +0000 (06:06 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111616
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Aug 2010 05:53:47 +0000 (05:53 +0000)]
Update help text for -cc1 -unoptimized-cfg.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111615
91177308 -0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 20 Aug 2010 03:36:08 +0000 (03:36 +0000)]
Translate NEON vmovl intrinsics to zero/sign-extend operations.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111612
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Aug 2010 03:26:10 +0000 (03:26 +0000)]
Revert r111609, which is failing its new test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111611
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Aug 2010 03:17:33 +0000 (03:17 +0000)]
Eliminate some extraneous whitespace in the machine-parseable Fix-It output.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111610
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 20 Aug 2010 01:40:01 +0000 (01:40 +0000)]
Detect efforts to declare a template member friend and explicitly ignore them.
Avoids a crash.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111609
91177308 -0d34-0410-b5e6-
96231b3b80d8
Jordy Rose [Fri, 20 Aug 2010 01:05:59 +0000 (01:05 +0000)]
Handle nested compound values in BindArray for multidimensional arrays. Fixes PR7945.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111602
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Aug 2010 00:59:43 +0000 (00:59 +0000)]
When performing code-completion in the presence of a preamble, make
sure to (1) actually use the remapped files we were given rather
than old data, and (2) keep the remapped files alive until the
code-completion results are destroyed. Big thanks to Daniel for the
test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111597
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Fri, 20 Aug 2010 00:17:19 +0000 (00:17 +0000)]
Mangle explicit template arguments in dependent or overloaded names.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111591
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Aug 2010 00:02:33 +0000 (00:02 +0000)]
When we decide not to reuse a precompiled preamble, clear out the
previous precompiled preamble completely. Fixes <rdar://problem/
8330950 >.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111590
91177308 -0d34-0410-b5e6-
96231b3b80d8
John McCall [Thu, 19 Aug 2010 23:49:38 +0000 (23:49 +0000)]
Regularize the API for accessing explicit template arguments.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111584
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Aug 2010 23:44:10 +0000 (23:44 +0000)]
libclang: Execute clang_codeCompleteAt() inside a crash recovery context.
- Test case is disabled for now, because something isn't write with file
remapping.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111581
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Aug 2010 23:44:06 +0000 (23:44 +0000)]
c-index-test: Diagnose parse / completion failures in -code-completion-at=.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111580
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Aug 2010 23:44:04 +0000 (23:44 +0000)]
c-index-test: As with reparse, only honor remapped false during the code
completion step with -code-completion-at=, to allow testing simulated source
changes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111579
91177308 -0d34-0410-b5e6-
96231b3b80d8