- Apr 05, 2012
-
-
Bill Wendling authored
Consider the following program: $ cat main.c void foo(void) { } int main(int argc, char *argv[]) { foo(); return 0; } $ cat bundle.c extern void foo(void); void bar(void) { foo(); } $ clang -o main main.c $ clang -o bundle.so bundle.c -bundle -bundle_loader ./main $ nm -m bundle.so 0000000000000f40 (__TEXT,__text) external _bar (undefined) external _foo (from executable) (undefined) external dyld_stub_binder (from libSystem) $ clang -o main main.c -O4 $ clang -o bundle.so bundle.c -bundle -bundle_loader ./main Undefined symbols for architecture x86_64: "_foo", referenced from: _bar in bundle-elQN6d.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) The linker was told that the 'foo' in 'main' was 'internal' and had no uses, so it was dead stripped. Another situation is something like: define void @foo() { ret void } define void @bar() { call asm volatile "call _foo" ... ret void } The only use of 'foo' is inside of an inline ASM call. Since we don't look inside those for uses of functions, we don't specify this as a "use." Get around this by not invoking the 'internalize' pass by default. This is an admitted hack for LTO correctness. <rdar://problem/11185386> llvm-svn: 154124
-
Jim Grosbach authored
'add r2, #-1024' should just use 'sub r2, #1024' rather than erroring out. Thumb1 aliases for adding a negative immediate to the stack pointer, also. rdar://11192734 llvm-svn: 154123
-
Akira Hatanaka authored
from emitting gp_rel relocation. llvm-svn: 154122
-
Ted Kremenek authored
consolidate some commonly used category strings into global references (more of this can be done, I just did a few). Fixes <rdar://problem/11191537>. llvm-svn: 154121
-
Eric Christopher authored
This enables debuggers to see what are interesting lines for a breakpoint rather than any line that starts a function. rdar://9852092 llvm-svn: 154120
-
Jakob Stoklund Olesen authored
LSR always tries to make the ICmp in the loop latch use the incremented induction variable. This allows the induction variable to be kept in a single register. When the induction variable limit is equal to the stride, SimplifySetCC() would break LSR's hard work by transforming: (icmp (add iv, stride), stride) --> (cmp iv, 0) This forced us to use lea for the IC update, preventing the simpler incl+cmp. <rdar://problem/7643606> <rdar://problem/11184260> llvm-svn: 154119
-
Dan Gohman authored
testcase slightly less trivial. This fixes rdar://11171718. llvm-svn: 154118
-
Sylvestre Ledru authored
llvm-svn: 154117
-
Simon Atanasyan authored
to the base class MipsTargetInfoBase. These macros are applicable for both 32/64-bits targets. llvm-svn: 154116
-
Richard Smith authored
a constant expression' error into a DefaultError ExtWarn, so that it can be disabled and is suppressed in system headers. libstdc++4.7 contains some such functions which we currently can't evaluate as constant expressions. llvm-svn: 154115
-
Sylvestre Ledru authored
llvm-svn: 154114
-
Owen Anderson authored
Treat f16 the same as f80/f128 for the purposes of generating constants during instruction selection. llvm-svn: 154113
-
Timur Iskhodzhanov authored
llvm-svn: 154112
-
Timur Iskhodzhanov authored
llvm-svn: 154111
-
Greg Clayton authored
Enable building the POSIX-DYLD dynamic loader plug-in in the Makefile build since it can be used for remote debugging. llvm-svn: 154109
-
Bill Wendling authored
llvm-svn: 154108
-
Timur Iskhodzhanov authored
llvm-svn: 154106
-
Daniel Dunbar authored
- Developers of system frameworks need a way for their framework to be treated as a "system framework" during development. Otherwise, they are unable to properly test how their framework behaves when installed because of the semantic changes (in warning behavior) applied to system frameworks. llvm-svn: 154105
-
Daniel Dunbar authored
- No functionality change. llvm-svn: 154104
-
Daniel Dunbar authored
llvm-svn: 154103
-
David Blaikie authored
Change suggested by Sebastian Redl on review feedback from r153887. llvm-svn: 154102
-
Silviu Baranga authored
Added support for unpredictable ADC/SBC instructions on ARM, and also fixed some corner cases involving the PC register as an operand for these instructions. llvm-svn: 154101
-
Silviu Baranga authored
llvm-svn: 154100
-
Greg Clayton authored
This abstracts read/write locks on the current host system. It is currently backed by pthread_rwlock_t objects so it should work on all unix systems. We also need a way to control multi-threaded access to the process through the public API when it is running. For example it isn't a good idea to try and get stack frames while the process is running. To implement this, the lldb_private::Process class now contains a ReadWriteLock member variable named m_run_lock which is used to control the public process state. The public process state represents the state of the process as the client knows it. The private is used to control the actual current process state. So the public state of the process can be stopped, yet the private state can be running when evaluating an expression for example. Adding the read/write lock where readers are clients that want the process to stay stopped, and writers are clients that run the process, allows us to accurately control multi-threaded access to the process. Switched the SBThread and SBFrame over to us shared pointers to the ExecutionContextRef class instead of making their own class to track this. This fixed an issue with assigning on SBFrame to another and will also centralize the code that tracks weak references to execution context objects into one location. llvm-svn: 154099
-
Hongbin Zheng authored
modify it. llvm-svn: 154098
-
Kostya Serebryany authored
llvm-svn: 154097
-
Hongbin Zheng authored
of the BBVectorizePass without using command line option. As pointed out by Hal, we can ask the TargetLoweringInfo for the architecture specific VectorizeConfig to perform vectorizing with architecture specific information. llvm-svn: 154096
-
David Chisnall authored
compare-and-exchange failed (it should update the expected value to the current value, and the tests were checking that it didn't...). Results of the atomics part of the test suite on FreeBSD with clang trunk and the atomic.c from compiler-rt (currently kludged into the test, not installed properly): **************************************************** Results for /root/libc++/test/atomics: using clang version 3.1 (trunk 153415) Target: x86_64-unknown-freebsd10.0 Thread model: posix with -std=c++0x -stdlib=libc++ -pthread /tmp/atomic.o ---------------------------------------------------- sections without tests : 0 sections with failures : 0 sections without failures: 14 + ---- total number of sections : 14 ---------------------------------------------------- number of tests failed : 0 number of tests passed : 52 + ---- total number of tests : 52 **************************************************** Yay! llvm-svn: 154095
-
David Chisnall authored
Now all of the test cases compile. Some of them even run! llvm-svn: 154094
-
David Chisnall authored
llvm-svn: 154093
-
Alexander Potapenko authored
per-thread stacks for signal handling. This allows to print more verbose error reports for stack overflows. llvm-svn: 154092
-
Alexander Potapenko authored
llvm-svn: 154091
-
James Molloy authored
An oversight when applying the patches for r150956 and r150957 to a vanilla tree meant I forgot to svn add these testcases. Noticed while investigating PR12274! llvm-svn: 154090
-
Hongbin Zheng authored
BasicBlock in other passes, e.g. we can call vectorizeBasicBlock in the loop unroll pass right after the loop is unrolled. llvm-svn: 154089
-
Jim Grosbach authored
rdar://11189467 llvm-svn: 154087
-
Bill Wendling authored
llvm-svn: 154086
-
Bill Wendling authored
llvm-svn: 154085
-
Ted Kremenek authored
llvm-svn: 154084
-
Ted Kremenek authored
Teach ObjCContainersChecker that the array passed to CFArrayGetValueAtIndex might not be a symbolic value. llvm-svn: 154083
-
Argyrios Kyrtzidis authored
the caller requested a null-terminated one. When mapping the file there could be a racing issue that resulted in the file being larger than the FileSize passed by the caller. We already have an assertion for this in MemoryBuffer::init() but have a runtime guarantee that the buffer will be null-terminated, so do a copy that adds a null-terminator. Protects against crash of rdar://11161822. llvm-svn: 154082
-