Devang Patel
7ecdc6d4f5
Refactor.
...
llvm-svn: 148131
2012-01-13 19:12:18 +00:00
Devang Patel
5d85276e30
Add new test.
...
llvm-svn: 148128
2012-01-13 18:45:31 +00:00
Pete Cooper
97aafd5f18
Fixed comment. Thanks Duncan!
...
llvm-svn: 148123
2012-01-13 17:52:01 +00:00
Douglas Gregor
ccff301bfe
Reinstate test case accidentally reverted by r148028
...
llvm-svn: 148118
2012-01-13 16:56:26 +00:00
Douglas Gregor
09a22f071b
Don't infer a submodule for a framework's private header, at least for now.
...
llvm-svn: 148117
2012-01-13 16:54:27 +00:00
Alexander Potapenko
bd53f597de
This patch adds two methods, __asan_allocate_island and __asan_deallocate_island
...
and switches our interceptors to using them instead of the default
vm_allocate-based approach used by mach_override_ptr.
To simplify the code, a fixed memory mapping is used for the allocation pool --
note that we can't mmap an arbitrary chunk of memory, because the shadow memory hasn't been mapped yet
(for the reasons discussed in http://code.google.com/p/address-sanitizer/issues/detail?id=24 , we cannot map the shadow earlier)
The patch drops the program startup time from several second to half a second,
which speeds up the execution of ASan tests noticeably.
Because of the virtual memory size occupied by the programs it's hard
to speed up the shutdown time, which would've also helped the tests.
llvm-svn: 148116
2012-01-13 16:13:58 +00:00
Alexander Potapenko
9301db4baa
Add __asan_mach_override_ptr_custom, which allows to inject a custom memory allocator into mach_override_ptr().
...
llvm-svn: 148115
2012-01-13 15:31:37 +00:00
Alexander Potapenko
553c208d22
This patch moves the code reading /proc/self/environ into AsanGetEnv
...
in asan_linux.cc, because /proc is unavailable on Mac.
Instead the Mac version of AsanGetEnv iterates over the array of
environment variables obtained from _NSGetEnviron()
llvm-svn: 148114
2012-01-13 12:59:48 +00:00
Evgeniy Stepanov
2ca1aa5a44
Remove --hash-style from link command on Android.
...
Gnu hash is not supported by the Android loader.
llvm-svn: 148113
2012-01-13 09:30:38 +00:00
Craig Topper
e52d86a740
Convert SHUFPD with the same register for both sources to PSHUFD if it would prevent a register copy. Similar to SHUFPS, but requires the mask to be converted.
...
llvm-svn: 148112
2012-01-13 09:21:41 +00:00
Greg Clayton
13d284b284
Updated HTML with info for ${function.name-with-args}
...
llvm-svn: 148111
2012-01-13 08:41:20 +00:00
Greg Clayton
6d3dbf5161
Added a new thread and frame format that can be used to display a function
...
name + arguments when the data is available. It seems to work really well,
but some more testing is needed before we make this on by default.
The new function format name is:
${function.name-with-args}
To see how to use these formats see the website:
http://lldb.llvm.org/formats.html
Here is a sample backtrace of debugging LLDB with LLDB using this new format
value:
(lldb) thread backtrace all
* thread #1 : tid = 0x2203, 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10, stop reason = signal SIGINT, name = <lldb.driver.main-thread>, queue = com.apple.main-thread
frame #0 : 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10
frame #1 : 0x00007fff884ae274 libsystem_c.dylib _pthread_cond_wait + 840
frame #2 : 0x00000001010778ea LLDB lldb_private::Condition::Wait(this=0x0000000104846770, mutex=0x0000000104846730, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 138 at Condition.cpp:92
frame #3 : 0x0000000101244c21 LLDB lldb_private::Predicate<bool>::WaitForValueEqualTo(this=0x0000000104846728, value=true, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 209 at Predicate.h:317
frame #4 : 0x0000000100f6eeb2 LLDB lldb_private::Listener::WaitForEventsInternal(this=0x0000000104846660, timeout=0x0000000000000000, broadcaster=0x0000000000000000, broadcaster_names=0x0000000000000000, num_broadcaster_names=0x00000000, event_type_mask=0x00000000, event_sp=0x00007fff5fbfe030) + 386 at Listener.cpp:388
frame #5 : 0x0000000100f6f231 LLDB lldb_private::Listener::WaitForEvent(this=0x0000000104846660, timeout=0x0000000000000000, event_sp=0x00007fff5fbfe030) + 81 at Listener.cpp:436
frame #6 : 0x0000000100098dcd LLDB lldb::SBListener::WaitForEvent(this=0x00007fff5fbff0f0, timeout_secs=0xffffffff, event=0x00007fff5fbfe430) + 685 at SBListener.cpp:181
frame #7 : 0x000000010000628c lldb Driver::MainLoop(this=0x00007fff5fbff620) + 5244 at Driver.cpp:1325
frame #8 : 0x0000000100006ca3 lldb main(argc=1, argv=0x00007fff5fbff758, envp=0x00007fff5fbff768) + 419 at Driver.cpp:1460
frame #9 : 0x0000000100000d54 lldb start + 52
thread #3 : tid = 0x2703, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.debugger.input>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x000000010524d040, timeout_usec=0x004c4b40, error_ptr=0x0000000105640a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x000000010524d040, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000104846270, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000104846270) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001045f6650) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #4 : tid = 0x2803, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x0000000105700370, timeout_usec=0x004c4b40, error_ptr=0x00000001056c3a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x0000000105700370, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105700000, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105700000) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x0000000105700430) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #5 : tid = 0x2903, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline_output>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x00000001057178f0, timeout_usec=0x004c4b40, error_ptr=0x0000000105980a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x00000001057178f0, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105717580, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105717580) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179b0) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #6 : tid = 0x2a03, 0x00007fff88a18af2 libsystem_kernel.dylib read + 10, name = <lldb.driver.commandline_io>
frame #0 : 0x00007fff88a18af2 libsystem_kernel.dylib read + 10
frame #1 : 0x0000000100050c3b libedit.3.dylib read_init + 247
frame #2 : 0x0000000100050e96 libedit.3.dylib el_wgetc + 155
frame #3 : 0x000000010005115d libedit.3.dylib el_wgets + 578
frame #4 : 0x000000010005debc libedit.3.dylib el_gets + 37
frame #5 : 0x000000010000d409 lldb IOChannel::LibeditGetInput(this=0x0000000105700490, new_line=0x0000000105a03db0) + 89 at IOChannel.cpp:311
frame #6 : 0x000000010000d8b6 lldb IOChannel::Run(this=0x0000000105700490) + 806 at IOChannel.cpp:391
frame #7 : 0x000000010000d57d lldb IOChannel::IOReadThread(ptr=0x0000000105700490) + 29 at IOChannel.cpp:345
frame #8 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179f0) + 227 at Host.cpp:549
frame #9 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #10 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
(lldb)
llvm-svn: 148110
2012-01-13 08:39:16 +00:00
Craig Topper
b1c2ebf6ee
use v8i32 as optimal mem type over v8f32 if AVX2 is enabled. Similar to SSE2 vs SSE1.
...
llvm-svn: 148109
2012-01-13 08:32:21 +00:00
Craig Topper
cb7e13d7c0
Make X86 instruction selection use 256-bit VPXOR for build_vector of all ones if AVX2 is enabled. This gives the ExeDepsFix pass a chance to choose FP vs int as appropriate. Also use v8i32 as the type for getZeroVector if AVX2 is enabled. This is consistent with SSE2 using prefering v4i32.
...
llvm-svn: 148108
2012-01-13 08:12:35 +00:00
NAKAMURA Takumi
1b845f712a
test/CodeGen/ARM/test-sharedidx.ll: Fix for -Asserts.
...
llvm-svn: 148107
2012-01-13 07:03:55 +00:00
Craig Topper
9f14d9f939
Add patterns for v16i16 and v32i8 immAllZerosV to select VPXOR to match v4i64 and v8i32.
...
llvm-svn: 148106
2012-01-13 06:59:47 +00:00
Andrew Trick
e77e84e4b7
Added the MachineSchedulerPass skeleton.
...
llvm-svn: 148105
2012-01-13 06:30:30 +00:00
Andrew Trick
d9accbf113
whitespace
...
llvm-svn: 148104
2012-01-13 06:30:25 +00:00
Andrew Trick
4d4fef238a
wrong filename
...
llvm-svn: 148103
2012-01-13 06:30:22 +00:00
Andrew Trick
b1be1aa8f8
80-col violation
...
llvm-svn: 148102
2012-01-13 06:30:19 +00:00
Craig Topper
a4c5a47b97
Use 8i32 constant pool entry for converting AVX2_SETALLONES. Possibly fixes PR11750.
...
llvm-svn: 148101
2012-01-13 06:12:41 +00:00
Raghesh Aloor
ea6c99c1d9
Memaccess: Removing some unwanted code
...
llvm-svn: 148100
2012-01-13 06:02:13 +00:00
Greg Clayton
ae3e9927a5
Bumped Xcode project version for lldb-105 and debugserver-164.
...
llvm-svn: 148098
2012-01-13 05:54:31 +00:00
Greg Clayton
d66945ae3d
<rdar://problem/10688864>
...
Fixed the new __apple_types to be able to accept a DW_TAG_structure_type
forward declaration and then find a DW_TAG_class_type definition, or vice
versa.
llvm-svn: 148097
2012-01-13 05:38:24 +00:00
Craig Topper
2aa07f832e
Fix typo in PerformAddCombine that caused any vector type to be checked for horizontal add/sub if AVX2 is enabled. This caused an assert to fail for non 128/256-bit vectors when done before type legalizing. Fixes PR11749.
...
llvm-svn: 148096
2012-01-13 05:04:25 +00:00
Jakob Stoklund Olesen
6f2288b67c
CodeInit was replaced by StringInit.
...
llvm-svn: 148095
2012-01-13 04:57:47 +00:00
Richard Smith
7971b69f74
PR11754: Reject non-static constexpr member functions in classes with virtual
...
base classes.
llvm-svn: 148094
2012-01-13 04:54:00 +00:00
Eli Friedman
09d272d025
A base subobject type doesn't make sense for unions; don't try to compute it. Based on patch by Yin Ma. Fixes PR11751.
...
llvm-svn: 148093
2012-01-13 03:58:31 +00:00
Jakob Stoklund Olesen
dd8fbf572e
Delete CodeInit and CodeRecTy from TableGen.
...
The code type was always identical to a string anyway. Now it is simply
a synonym. The code literal syntax [{...}] is still valid.
llvm-svn: 148092
2012-01-13 03:38:34 +00:00
Jakob Stoklund Olesen
9d1c5eeb32
Use uniqued StringInit pointers for lookups.
...
This avoids a gazillion StringMap and dynamic_cast calls, making
TableGen run 3x faster.
llvm-svn: 148091
2012-01-13 03:16:35 +00:00
Eli Friedman
c8002429e5
constexpr is allowed on static member functions of non-literal classes. Per report on cfe-dev.
...
llvm-svn: 148090
2012-01-13 02:31:53 +00:00
Eli Friedman
9a766c4043
A few minor improvements to error recovery trying to access member of a function. In particular, this restores the cool error recovery for the example from http://blog.llvm.org/2010/04/amazing-feats-of-clang-error-recovery.html , which regressed a few months back.
...
llvm-svn: 148089
2012-01-13 02:20:01 +00:00
Richard Smith
90b748e0d1
Don't crash while trying to diagnose a function declared at block scope with an
...
incomplete return type.
llvm-svn: 148088
2012-01-13 02:14:39 +00:00
Jim Ingham
bc2f918200
Don't set breakpoints independently comp unit by comp unit, but look over all the file & line matches
...
and only pick the "best" ones.
<rdar://problem/10685990>
llvm-svn: 148087
2012-01-13 02:04:05 +00:00
Evan Cheng
fa8326334b
DAGCombine's logic for forming pre- and post- indexed loads / stores were being
...
overly conservative. It was concerned about cases where it would prohibit
folding simple [r, c] addressing modes. e.g.
ldr r0, [r2]
ldr r1, [r2, #4 ]
=>
ldr r0, [r2], #4
ldr r1, [r2]
Change the logic to look for such cases which allows it to form indexed memory
ops more aggressively.
rdar://10674430
llvm-svn: 148086
2012-01-13 01:37:24 +00:00
Kaelyn Uhrain
e31b88833a
Fix up the calls to CorrectTypo in Sema*ObjC.cpp to use callback
...
objects, and add a basic CorrectionCandidateCallback template class
to simplify the fixups.
llvm-svn: 148085
2012-01-13 01:32:50 +00:00
Douglas Gregor
04ea962144
Revert previous commit. Something has gone wonky with my local configuration
...
llvm-svn: 148084
2012-01-13 01:24:11 +00:00
Howard Hinnant
50f7eeec9d
Enclosed is a stress test for dynamic_cast. It stresses both libc++abi, and clang itself. It creates a ridiculously large class hierarchy using variadic templates. You can specify both the width and depth of the class hierarchy. And you can specify whether the cast is to the actual run time type, or to an intermediate layer in the class. About 1/3 of the time I compile this, it crashes the compiler. There seems to be an uninitialized area of memory, and I'm probably blowing past an assumption on class hierarchy size within clang (and understandably so). I can get it work most of the time with a class hierarchy width of 20 and a depth of 7. I'm making timings with both -O3 and -Os, using both cast to root and cast to intermediate, on both libc++abi, and gcc's dynamic_cast. I've put the results in a comment/table at the bottom of the test.
...
llvm-svn: 148083
2012-01-13 01:22:31 +00:00
Douglas Gregor
da4fda7364
When inferring a module map for a framework, add the 'private'
...
requirement to headers under PrivateHeaders. We don't want to build
them as part of the module (yet).
llvm-svn: 148082
2012-01-13 01:20:43 +00:00
Anna Zaks
cb6d4ee793
[analyzer] Unwrap the pointers when ignoring the const cast.
...
radar://10686991
llvm-svn: 148081
2012-01-13 00:56:55 +00:00
Anna Zaks
a31f6b9559
[analyzer] Taint: when looking up a binding, provide the type.
...
llvm-svn: 148080
2012-01-13 00:56:51 +00:00
Anna Zaks
6228130099
[analyzer] RegionStoreManager::getBinding() should not crash when
...
looking up value at a CodeTextRegion even when the type is not provided.
llvm-svn: 148079
2012-01-13 00:56:48 +00:00
Anna Zaks
bdf42b336d
[analyzer] Fix a typo in a warning message.
...
llvm-svn: 148078
2012-01-13 00:56:44 +00:00
Bill Wendling
9c8456f7ef
Fix off-by-one error.
...
llvm-svn: 148077
2012-01-13 00:41:53 +00:00
Dan Gohman
728db4997a
Implement proper ObjC ARC objc_retainBlock "escape" analysis, so that
...
the optimizer doesn't eliminate objc_retainBlock calls which are needed
for their side effect of copying blocks onto the heap.
This implements rdar://10361249.
llvm-svn: 148076
2012-01-13 00:39:07 +00:00
Johnny Chen
fb05d23789
Add some description for this test directory.
...
llvm-svn: 148075
2012-01-13 00:24:11 +00:00
Fariborz Jahanian
372030b2a1
objc parsing. Fixes a crash when parsing array initialization
...
inside a class implementation with parse errors. // rdar://10633434
llvm-svn: 148074
2012-01-13 00:14:12 +00:00
Johnny Chen
c50af6fdcc
rdar://problem/10684459
...
test_move_and_then_display_source (TestSourceManager.py) never works in LLDB test suite
Forgot to svn ci the "hidden" directory. :-(
llvm-svn: 148073
2012-01-13 00:02:46 +00:00
Richard Smith
8d06f42448
Improve 0-argument -Wvexing-parse diagnostic by adding notes with fix-its:
...
- If the declarator is at the start of a line, and the previous line contained
another declarator and ended with a comma, then that comma was probably a
typo for a semicolon:
int n = 0, m = 1, l = 2, // k = 5;
myImportantFunctionCall(); // oops!
- If removing the parentheses would correctly initialize the object, then
produce a note suggesting that fix.
- Otherwise, if there is a simple initializer we can suggest which performs
value-initialization, then provide a note suggesting a correction to that
initializer.
Sema::Declarator now tracks the location of the comma prior to the declarator in
the declaration, if there is one, to facilitate providing the note. The code to
determine an appropriate initializer from the -Wuninitialized warning has been
factored out to allow use in both that and -Wvexing-parse.
llvm-svn: 148072
2012-01-12 23:53:29 +00:00
Johnny Chen
7840c81df2
Modify a couple of Makefiles to use clang instead of gcc, since gcc is being deprecated.
...
llvm-svn: 148071
2012-01-12 23:50:28 +00:00