Benjamin Kramer
aa598b3be6
misched: Recompute priority queue when DFSResults are updated.
...
This was found by MSVC10's STL debug mode on a test from the test suite. Sadly
std::is_heap isn't standard so there is no way to assert this without writing
our own heap verify, which looks like overkill to me.
llvm-svn: 168885
2012-11-29 14:36:26 +00:00
Evgeniy Stepanov
7ad7e83031
[msan] Basic handling of inline asm.
...
llvm-svn: 168884
2012-11-29 14:32:03 +00:00
Justin Holewinski
0ac49bf846
Teach the legalizer how to handle operands for VSELECT nodes
...
If we need to split the operand of a VSELECT, it must be the mask operand. We
split the entire VSELECT operand with EXTRACT_SUBVECTOR.
llvm-svn: 168883
2012-11-29 14:26:28 +00:00
Justin Holewinski
bc45119b44
Allow targets to prefer TypeSplitVector over TypePromoteInteger when computing the legalization method for vectors
...
For some targets, it is desirable to prefer scalarizing <N x i1> instead of promoting to a larger legal type, such as <N x i32>.
llvm-svn: 168882
2012-11-29 14:26:24 +00:00
Evgeniy Stepanov
857d9d2a59
[msan] Propagate shadow through (x<0) and (x>=0) comparisons.
...
This is a special case of signed relational comparison where result
only depends on the sign of x.
llvm-svn: 168881
2012-11-29 14:25:47 +00:00
Evgeniy Stepanov
eeb8b7c391
[msan] Fix shadow & origin store & load alignment.
...
This change ensures that shadow memory accesses have the same alignment
as corresponding app memory accesses.
llvm-svn: 168880
2012-11-29 14:05:53 +00:00
Evgeniy Stepanov
62ba611828
[msan] Optimize getOriginPtr.
...
Rewrite getOriginPtr in a way that lets subsequent optimizations factor out
the common part of Shadow and Origin address calculation. Improves perf by
up to 5%.
llvm-svn: 168879
2012-11-29 13:43:05 +00:00
Evgeniy Stepanov
da0072b676
[msan] Fix a few compilation warnings.
...
llvm-svn: 168878
2012-11-29 13:12:03 +00:00
Evgeniy Stepanov
c3b579e5ac
[msan] Add a test for r168873.
...
llvm-svn: 168877
2012-11-29 13:11:09 +00:00
Evgeniy Stepanov
62b5db9361
[msan] Transform memcpy and memset to library calls.
...
This was already done for memmove, where it is required for correctness.
This change improves performance by avoiding copyingthe same memory twice.
Also, the library functions are given __msan_ prefix to prevent instcombine
pass from converting them back to intrinsics.
llvm-svn: 168876
2012-11-29 12:49:04 +00:00
Elena Demikhovsky
eace43bff7
I changed hasAVX() to hasFp256() and hasAVX2() to hasInt256() in X86IselLowering.cpp.
...
The logic was not changed, only names.
llvm-svn: 168875
2012-11-29 12:44:59 +00:00
Evgeniy Stepanov
4f9240d7e3
[msan] Update tests (broken in r168873).
...
llvm-svn: 168874
2012-11-29 12:43:56 +00:00
Evgeniy Stepanov
1d2da65bf8
[msan] Make sure that report callbacks do not get merged.
...
llvm-svn: 168873
2012-11-29 12:30:18 +00:00
Kostya Serebryany
dde9dcc24b
[asan] disable BuiltinLongJmpTest on Android
...
llvm-svn: 168872
2012-11-29 12:18:48 +00:00
Dmitri Gribenko
194d3685ec
Documentation: use correct highlighter
...
llvm-svn: 168871
2012-11-29 12:00:32 +00:00
NAKAMURA Takumi
c2b2b75bd5
ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Remove i128 stuff. Conditioning-out in macro argument was not accepted on MS cl.exe.
...
llvm-svn: 168867
2012-11-29 10:22:40 +00:00
Evgeniy Stepanov
d4bd7b73e3
Initial commit of MemorySanitizer.
...
Compiler pass only.
llvm-svn: 168866
2012-11-29 09:57:20 +00:00
NAKAMURA Takumi
b2df62570e
ASTTests/StmtPrinterTest/StmtPrinter.TestMSIntegerLiteral: Suppress i128 according to r168856, for now.
...
I think "i128", that I conditioned out, could be completely removed.
MS Compiler doesn't accept i128. We can assume no one would use i128.
llvm-svn: 168865
2012-11-29 09:57:11 +00:00
Kostya Serebryany
4b929dae93
[asan/tsan] initialize the asan/tsan callbacks in runOnFunction as opposed to doInitialization. This is required to allow the upcoming changes in PassManager behavior
...
llvm-svn: 168864
2012-11-29 09:54:21 +00:00
Kostya Serebryany
e73a480970
[asan] enable BuiltinLongJmpTest
...
llvm-svn: 168863
2012-11-29 09:02:14 +00:00
Timur Iskhodzhanov
6732d350ef
[-cxx-abi microsoft] Also spill the argument-back-references context when mangling templates
...
llvm-svn: 168862
2012-11-29 08:58:47 +00:00
Kostya Serebryany
633bf93fb8
[asan] when checking the noreturn attribute on the call, also check it on the callee
...
llvm-svn: 168861
2012-11-29 08:57:20 +00:00
Richard Smith
99507e6c10
ubsan: Don't assume that Clang provides __int128 unless it advertises that it does.
...
llvm-svn: 168857
2012-11-29 05:59:30 +00:00
Richard Smith
e6a56db2e6
Reject uses of __int128 on platforms that don't support it. Also move the ugly
...
'getPointerWidth(0) >= 64' test to be a method on TargetInfo, ready to be
properly cleaned up.
llvm-svn: 168856
2012-11-29 05:41:51 +00:00
Nico Weber
6be9b25cb6
Fix sentence construction-o.
...
llvm-svn: 168855
2012-11-29 05:29:23 +00:00
Preston Briggs
4eb7ee566a
Cleaned up a couple of comments.
...
llvm-svn: 168854
2012-11-29 04:30:52 +00:00
Richard Smith
e1f363c724
Remove 'noreturn' attribute from friend declaration. This attribute will be
...
inherited from the previous out-of-class declaration, and attributes on friend
function declarations are ill-formed in C++11.
llvm-svn: 168853
2012-11-29 04:30:50 +00:00
Jakob Stoklund Olesen
bdb55e0c59
Use MCPhysReg for RegisterClassInfo allocation orders.
...
This saves a bit of memory.
llvm-svn: 168852
2012-11-29 03:34:17 +00:00
Eli Friedman
fd41aee2f8
Fix crash-on-invalid. <rdar://problem/12765391>.
...
llvm-svn: 168851
2012-11-29 03:13:49 +00:00
Jakob Stoklund Olesen
7afe1663e9
Add an MCPhysReg typedef to replace naked uint16_t.
...
Use this type for arrays of physical registers.
llvm-svn: 168850
2012-11-29 02:39:28 +00:00
Shuxin Yang
01ab5d718b
Instruction::isAssociative() returns true for fmul/fadd if they are tagged "unsafe" mode.
...
Approved by: Eli and Michael.
llvm-svn: 168848
2012-11-29 01:47:31 +00:00
Richard Smith
8bf22e5b52
The declaration of a special member can require overload resolution to be
...
performed, to determine whether that special member is deleted or constexpr.
That overload resolution process can in turn trigger the instantiation of a
template, which can do anything, including triggering the declaration of that
very same special member function. When this happens, do not try to recursively
declare the special member -- that's impossible. Instead, only try to realise
the truth. There is no special member.
llvm-svn: 168847
2012-11-29 01:34:07 +00:00
Ted Kremenek
ad6e5b262a
Change SValBuilder::getConditionType() to return BoolTy in C++. Fixes <rdar://problem/12772656>.
...
llvm-svn: 168846
2012-11-29 01:03:10 +00:00
Greg Clayton
75a0333bf8
<rdar://problem/12445557>
...
Make stack frames fix up their line table entries when the target has source remappings. Also rearranged how the m_sc.target_sp was filled in so it can be used during the StackFrame::GetSymbolContext(...) function.
llvm-svn: 168845
2012-11-29 00:53:06 +00:00
Sean Callanan
ea09a44ceb
Don't return decorated (i.e., const or pointer)
...
versions of UnknownAnyTy for ObjectiveC value types.
<unknown type>* makes no sense and can cause the
parser to behave very oddly.
<rdar://problem/12518999>
llvm-svn: 168844
2012-11-29 00:50:56 +00:00
Ted Kremenek
2317f30f4d
Correctly handle IntegralToBool casts in C++ in the static analyzer. Fixes <rdar://problem/12759044>.
...
llvm-svn: 168843
2012-11-29 00:50:20 +00:00
Chad Rosier
9ae53f8e3a
[driver] -mkernel implies -mstrict-align; don't add the redundant option.
...
rdar://12771737
llvm-svn: 168841
2012-11-29 00:42:06 +00:00
Jim Ingham
8c3f2764fb
Add an example of using the target.process.extra-startup-command to turn on debugserver logging since
...
we always forget how to do this...
llvm-svn: 168840
2012-11-29 00:41:12 +00:00
Jim Ingham
7730b9a47a
Tighten up how we acquire the underlying frame in the SBFrame methods. We were getting
...
the frame and then getting the run lock. Which means that our frame could have gotten
invalidated by stopping between the time we got the frame and assured the the target was
stopped. Now we get the run lock first, and THEN resolve the underlying frame object.
<rdar://problem/12621607>
llvm-svn: 168838
2012-11-29 00:26:19 +00:00
Jakob Stoklund Olesen
546e9e85f1
Avoid rewriting instructions twice.
...
This could cause miscompilations in targets where sub-register
composition is not always idempotent (ARM).
<rdar://problem/12758887>
llvm-svn: 168837
2012-11-29 00:26:11 +00:00
Daniel Malea
e812109868
Rename __lambda to __lambda_node (apply r164404 from libcxxabi)
...
- fixes gcc 4.6 build problems
- resolves open bugzilla http://llvm.org/bugs/show_bug.cgi?id=13889
llvm-svn: 168835
2012-11-29 00:05:50 +00:00
Jason Molenda
b8e5c79af1
Correct the label for the com.apple.debugserver.posix plist.
...
<rdar://problem/12769073>
llvm-svn: 168834
2012-11-29 00:01:49 +00:00
Nick Lewycky
1af94eb075
Issue a fatal error if the line doesn't have a regular expression.
...
Also a couple not-user-visible changes; using empty() instead of size(), and
make inSection() not insert NULL Regex*'s into StringMap when doing a lookup.
llvm-svn: 168833
2012-11-29 00:01:38 +00:00
Nadav Rotem
307d767177
When combining consecutive stores allow loads in between the stores, if the loads do not alias.
...
llvm-svn: 168832
2012-11-29 00:00:08 +00:00
Daniel Malea
16e126c70b
Linux buildbot fix: detect swig tool from PATH in shell script (before searching hardcoded directories)
...
llvm-svn: 168831
2012-11-28 23:49:11 +00:00
Bill Wendling
f3614fd8e2
When we delete a dead basic block, see if any of its successors are dead and
...
delete those as well.
llvm-svn: 168829
2012-11-28 23:23:48 +00:00
Daniel Malea
9bbc8da517
Add 'class' keyword to friend definition (to fix gcc 4.6 build)
...
llvm-svn: 168827
2012-11-28 23:20:22 +00:00
Michael Han
ddc016d4d7
Implement C++11 [dcl.attr.grammar] p4: If an attribute-specifier-seq appertains to a friend declaration, that declaration shall be a definition.
...
llvm-svn: 168826
2012-11-28 23:17:40 +00:00
Fariborz Jahanian
998f0a3360
objective-C blocks: Make sure that identical logic is used
...
in deciding a copy/dispose field is needed in a byref structure
and when generating the copy/dispose helpers. In certain
cases, these fields were being added but no copy/dispose was
being generated. This was uncovered in ARC, but not in MRR.
// rdar://12759433
llvm-svn: 168825
2012-11-28 23:12:17 +00:00
Richard Smith
a118c6a8c0
Per C++11 [except.spec]p2, rvalue references are not permitted in exception specifications.
...
llvm-svn: 168824
2012-11-28 22:52:42 +00:00