Rafael Espindola
44938a738a
Fix invalid jump scopes again. This time without trying to find out if an
...
incomplete type has a destructor or not.
llvm-svn: 166895
2012-10-28 02:44:03 +00:00
Rafael Espindola
c74634fe48
Add a testcase from the previous bootstrap problem.
...
llvm-svn: 166894
2012-10-28 02:25:27 +00:00
Nico Weber
729f1e2a1c
Fix crash on missing namespace name in namespace alias definition -- PR14085.
...
Patch from Brian Brooks <brooks.brian@gmail.com>!
llvm-svn: 166893
2012-10-27 23:44:27 +00:00
Fariborz Jahanian
0c58ce9346
objective-C arc/mrr: Patch for the new block variable layout meta-data.
...
It is currently off (so no tests). This is wip.
llvm-svn: 166892
2012-10-27 21:10:38 +00:00
Chris Lattner
d5705d1b1c
Currently the initial value of Tok is dependent an the stack contents
...
and could cause the Parser to crash on the first ConsumeToken().
Patcy by Bas van den Berg!
llvm-svn: 166891
2012-10-27 19:49:20 +00:00
Jakob Stoklund Olesen
57143f7e78
Never attempt to join an early-clobber def with a regular kill.
...
This fixes PR14194.
llvm-svn: 166880
2012-10-27 17:41:27 +00:00
Rafael Espindola
bd2c99b77c
Revert 166876 while I debug a bootstrap problem.
...
llvm-svn: 166878
2012-10-27 16:49:47 +00:00
Benjamin Kramer
8d2ee55a0c
LoopIdiom: Add checks to avoid turning memmove into an infinite loop.
...
I don't think this is possible with the current implementation but that may change eventually.
llvm-svn: 166877
2012-10-27 15:18:28 +00:00
Rafael Espindola
2ea126e73e
Reapply 166855 with an early exit on null QualTypes.
...
llvm-svn: 166876
2012-10-27 14:56:08 +00:00
Benjamin Kramer
1c9e5186c0
LoopIdiom: Recognize memmove loops.
...
This turns loops like
for (unsigned i = 0; i != n; ++i)
p[i] = p[i+1];
into memmove, which has a highly optimized implementation in most libcs.
This was really easy with the new DependenceAnalysis :)
llvm-svn: 166875
2012-10-27 14:25:51 +00:00
Benjamin Kramer
d5c9be8247
LoopIdiom: Replace custom dependence analysis with DependenceAnalysis.
...
Requires a lot less code and complexity on loop-idiom's side and the more
precise analysis can catch more cases, like the one I included as a test case.
This also fixes the edge-case miscompilation from PR9481.
Compile time performance seems to be slightly worse, but this is mostly due
to an extra LCSSA run scheduled by the PassManager and should be fixed there.
llvm-svn: 166874
2012-10-27 14:25:44 +00:00
Benjamin Kramer
5bc077aa88
SCEV validator: Ignore CouldNotCompute/undef on both sides. This is mostly noise and blocks finding more severe bugs.
...
llvm-svn: 166873
2012-10-27 11:36:07 +00:00
Benjamin Kramer
24d270db57
SCEV validator: Add workarounds for some common false positives due to the way it handles strings.
...
llvm-svn: 166872
2012-10-27 10:45:01 +00:00
Mahesha S
19a429e7e6
Reverted back the changes made in 166868 and in 166869
...
llvm-svn: 166871
2012-10-27 10:44:42 +00:00
Chandler Carruth
34e3477593
Clarify that there is an option other than OAuth for Phabricator and
...
offer up my email to the spam lords for it. Hopefully this will
eventually be more automatic, but we don't want people to think there is
only one option.
llvm-svn: 166870
2012-10-27 09:47:33 +00:00
Mahesha S
5d61097dd9
Feature:
...
OpenMP support.
Sub-Feature:
Support for "#pragma omp ..." registration with
Preprocessor.
Files Changed/Added:
* include/clang/Basic/DiagnosticGroups.td (C)
* include/clang/Basic/DiagnosticParseKinds.td (C)
* include/clang/Basic/TokenKinds.def (C)
* include/clang/Parse/Parser.h (C)
* lib/Parse/Parser.cpp (C)
Test Cases Changed/Added:
* test/Preprocessor/pragma_omp.c (A)
* test/Preprocessor/pragma_omp_ignored_warning.c (A)
llvm-svn: 166869
2012-10-27 09:05:45 +00:00
Mahesha S
6a682be48b
-------------------------------------------------
...
Feature:
OpenMP support in CLANG:
Sub-Feature:
Support for option -fopenmp
Files Changed/Added:
* include/clang/Driver/Options.td (C)
* include/clang/Basic/LangOptions.def (C)
* lib/Driver/Tools.cpp (C)
* lib/Frontend/CompilerInvocation.cpp (C)
Test Cases Changed/Added:
* test/Driver/clang_fopenmp_opt.c (A)
-------------------------------------------------
llvm-svn: 166868
2012-10-27 07:47:56 +00:00
Mahesha S
34a26623a6
Removed an extra blank line.
...
llvm-svn: 166867
2012-10-27 07:23:58 +00:00
Rafael Espindola
bb5d47ef15
Add a reduced testcase of the last bootstrap failure.
...
llvm-svn: 166866
2012-10-27 04:54:49 +00:00
Hal Finkel
bad10bb2f3
Update BBVectorize to use the new VTTI instr. cost interfaces.
...
The monolithic interface for instruction costs has been split into
several functions. This is the corresponding change. No functionality
change is intended.
llvm-svn: 166865
2012-10-27 04:33:48 +00:00
Nadav Rotem
859366f93f
1. Fix a bug in getTypeConversion. When a *simple* type is split, we need to return the type of the split result.
...
2. Change the maximum vectorization width from 4 to 8.
3. A test for both.
llvm-svn: 166864
2012-10-27 04:11:32 +00:00
Rafael Espindola
8c0739d332
Revert r166855. I can reproduce the bootstrap failure and have a testcase
...
to reduce.
llvm-svn: 166863
2012-10-27 03:06:02 +00:00
Jim Ingham
3793976376
This is the first phase of supporting the DW_AT_object_pointer tag. I expanded the decl metadata
...
so it could hold this information, and then used it to look up unfound names in the object pointer
if it exists. This gets "frame var" to work for unqualified references to ivars captured in blocks.
But the expression parser is ignoring this information still.
llvm-svn: 166860
2012-10-27 02:54:13 +00:00
Jim Ingham
4dc613b364
If we got what looks like a single step exception but we weren't single stepping then just report
...
the raw exception.
llvm-svn: 166859
2012-10-27 02:52:04 +00:00
Argyrios Kyrtzidis
668bf82658
Add a test case for the stack overflow in rdar://12542261
...
llvm-svn: 166858
2012-10-27 02:13:28 +00:00
Enrico Granata
21fd13f9b7
Moving ValueObjectCast over to its own .h/.cpp files instead of sharing ValueObjectDynamic.h/.cpp
...
Removing the IsDynamic() and GetStaticValue() calls, so that they will default to the base class behavior:
- non-dynamic
- itself as the static value
This is in contrast with the previous behavior which could be confusing and could potentially cause issues when using those objects
llvm-svn: 166857
2012-10-27 02:05:48 +00:00
Sean Callanan
cd6ce2ff31
Fixes to the Objective-C V2 runtime:
...
- Only read the statically-defined isa table in the
shared cache once. Only the dynamically-constructed
isa table can change.
- Ignore the statically-defined isa table if its
version isn't what we expect.
llvm-svn: 166856
2012-10-27 01:51:44 +00:00
Rafael Espindola
c5f9943a60
Fix cases where we were not producing an error when a computed goto could
...
jump over destructor calls.
Fixes pr13812.
llvm-svn: 166855
2012-10-27 01:17:42 +00:00
Quentin Colombet
3ee56a3bf5
[code size][ARM] Emit regular call instructions instead of the move, branch sequence
...
llvm-svn: 166854
2012-10-27 01:10:17 +00:00
Rafael Espindola
9c006de3d3
Move two helper functions to AST so that sema can use them.
...
llvm-svn: 166853
2012-10-27 01:03:43 +00:00
Reed Kotler
7e4d9969cb
Implement MipsHi for mips16
...
llvm-svn: 166852
2012-10-27 00:57:14 +00:00
Akira Hatanaka
6a124a84dc
[mips] Do not tail-call optimize vararg functions or functions with byval
...
arguments.
This is rather conservative and should be fixed later to be more aggressive.
llvm-svn: 166851
2012-10-27 00:56:56 +00:00
Akira Hatanaka
2c07f1f140
[mips] Make sure FuncArg doesn't advance when OrigArgIndex is the same as in the
...
previous iteration.
llvm-svn: 166850
2012-10-27 00:44:39 +00:00
Rafael Espindola
b9d75ca84b
Refactor some code into a new findMaterializedTemporary function.
...
llvm-svn: 166849
2012-10-27 00:43:14 +00:00
Rafael Espindola
b413676cd7
Refactor some code into a new skipRValueSubobjectAdjustments function.
...
llvm-svn: 166848
2012-10-27 00:40:06 +00:00
Rafael Espindola
e7b11f5241
Delay codegen to after collecting all SubobjectAdjustment so that the collection
...
can be refactored and used in Sema.
llvm-svn: 166847
2012-10-27 00:36:38 +00:00
Akira Hatanaka
ac8c669985
Use the methods and classes that were added to simplify LowerCall and
...
LowerFormalArguments in MipsTargetLowering.
No functionality change intended.
llvm-svn: 166846
2012-10-27 00:29:43 +00:00
Akira Hatanaka
2a13402a66
Add method MipsTargetLowering::writeVarArgRegs which copies argument registers
...
of vararg functions back to the stack.
llvm-svn: 166844
2012-10-27 00:21:13 +00:00
Akira Hatanaka
35f55b1622
Add method MipsTargetLowering::passByValArg.
...
This method emits nodes for passing byval arguments in registers and stack.
This has the same functionality as existing functions PassByValArg64 and
WriteByValArg which will be deleted later.
llvm-svn: 166843
2012-10-27 00:16:36 +00:00
Akira Hatanaka
25dad19f0e
Add method MipsTargetLowering::copyByValRegs.
...
This method copies byval arguments passed in registers onto the stack and has
the same functionality as existing functions CopyMips64ByValRegs and
ReadByValArg which will be deleted later.
llvm-svn: 166841
2012-10-27 00:10:18 +00:00
Akira Hatanaka
4a3711d077
Add class MipsCC which provides methods used to analyze formal and call
...
arguments and inquire about calling convention information.
llvm-svn: 166840
2012-10-26 23:56:38 +00:00
Jason Molenda
aba75e6495
Show both lldb-168 and earlier "bt -c 5" as well as lldb-169 and later "bt 5" usage.
...
llvm-svn: 166839
2012-10-26 23:56:03 +00:00
Jason Molenda
ca76ecda8a
Document "bt <n>" for "thread backtrace -c <n>", note that it is available
...
in lldb-169 and later.
llvm-svn: 166838
2012-10-26 23:52:49 +00:00
Akira Hatanaka
e485c65642
Delete MipsFunctionInfo::InArgFIRange.
...
llvm-svn: 166837
2012-10-26 23:49:51 +00:00
Nadav Rotem
afae78edab
Refactor the VectorTargetTransformInfo interface.
...
Add getCostXXX calls for different families of opcodes, such as casts, arithmetic, cmp, etc.
Port the LoopVectorizer to the new API.
The LoopVectorizer now finds instructions which will remain uniform after vectorization. It uses this information when calculating the cost of these instructions.
llvm-svn: 166836
2012-10-26 23:49:28 +00:00
Jakob Stoklund Olesen
1f06e7f00e
Revert r163298 "Optimize codegen for VSETLNi{8,16,32} operating on Q registers."
...
Keep the integer_insertelement test case, the new coalescer can handle
this kind of lane insertion without help from pseudo-instructions.
llvm-svn: 166835
2012-10-26 23:39:46 +00:00
Kaelyn Uhrain
271fbb6445
Avoid an unused-variable warning when asserts are disabled.
...
llvm-svn: 166834
2012-10-26 23:28:41 +00:00
Eli Friedman
ef5df7b8eb
Fix typo.
...
llvm-svn: 166833
2012-10-26 23:25:42 +00:00
Eli Friedman
fc5b2effcf
Add missing safety check to an optimization for do-while loops. PR14191.
...
llvm-svn: 166832
2012-10-26 23:23:35 +00:00
Eli Friedman
a7137bc1c2
Fix indentation.
...
llvm-svn: 166830
2012-10-26 23:05:34 +00:00