summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Unxfail test/CodeGen/Generic/vector.ll now passing on HexagonKrzysztof Parzyszek2015-03-191-1/+0
| | | | llvm-svn: 232758
* [Mips] Implement R_MIPS_PCHI16 / R_MIPS_PCLO16 relocations handlingSimon Atanasyan2015-03-196-0/+420
| | | | llvm-svn: 232757
* [Mips] Implement R_MIPS_PC18_S3 relocation handlingSimon Atanasyan2015-03-192-0/+66
| | | | llvm-svn: 232756
* [Mips] Implement R_MIPS_PC19_S2 / R_MIPS_PC26_S2 relocations handlingSimon Atanasyan2015-03-193-0/+132
| | | | llvm-svn: 232755
* [sanitizer] trying to fix sancov.py with 32-bit pythonKostya Serebryany2015-03-191-7/+18
| | | | llvm-svn: 232754
* Remove unused diagnostic.Benjamin Kramer2015-03-191-2/+0
| | | | | | Unused since r231851. llvm-svn: 232751
* Add -Wpartial-availability.Nico Weber2015-03-199-33/+283
| | | | | | | | | | | | | | | | | | | | | | | | | | | This warns when using decls that are not available on all deployment targets. For example, a call to - (void)ppartialMethod __attribute__((availability(macosx,introduced=10.8))); will warn if -mmacosx-version-min is set to less than 10.8. To silence the warning, one has to explicitly redeclare the method like so: @interface Whatever(MountainLionAPI) - (void)ppartialMethod; @end This way, one cannot accidentally call a function that isn't available everywhere. Having to add the redeclaration will hopefully remind the user to add an explicit respondsToSelector: call as well. Some projects build against old SDKs to get this effect, but building against old SDKs suppresses some bug fixes -- see http://crbug.com/463171 for examples. The hope is that SDK headers are annotated well enough with availability attributes that new SDK + this warning offers the same amount of protection as using an old SDK. llvm-svn: 232750
* Remove .CUDAIsDevice flags from CodeGenOpts as it's alreadyArtem Belevich2015-03-194-5/+3
| | | | | | | | available in LangOpts. Differential Revision: http://reviews.llvm.org/D8385 llvm-svn: 232749
* Fix -ast-dump of dependent new and delete exprsReid Kleckner2015-03-192-8/+22
| | | | llvm-svn: 232748
* Ignore device-side asm constraint errors while compiling CUDA code for host ↵Artem Belevich2015-03-193-3/+55
| | | | | | | | and vice versa. Differential Revision: http://reviews.llvm.org/D8392 llvm-svn: 232747
* gold: Make powerpc support optional for the tests.Peter Collingbourne2015-03-192-1/+5
| | | | | | Differential Revision: http://reviews.llvm.org/D8400 llvm-svn: 232744
* GlobalDCE: Improve performance for large modules containing comdats.Peter Collingbourne2015-03-191-10/+16
| | | | | | | | | | | | | | | | When we encounter a global with a comdat, rather than iterating over every global in the module to find globals in the same comdat, store the members in a multimap. This effectively lowers the complexity to O(N log N), improving performance significantly for large modules such as might be encountered during LTO. It looks like we used to do something like this until r219191. No functional change. Differential Revision: http://reviews.llvm.org/D8431 llvm-svn: 232743
* docs: Update llvm-cov docs for the -use-color flagJustin Bogner2015-03-191-4/+4
| | | | llvm-svn: 232742
* Added missing case for IK_PreprocessedCuda.Artem Belevich2015-03-191-0/+1
| | | | llvm-svn: 232741
* Add -ast-dump support for new and delete expressions to help figure out ↵Reid Kleckner2015-03-192-0/+41
| | | | | | which operator got selected llvm-svn: 232740
* Fix incremental linking with ninja and CMake 3.2+, see LLVM r232662 for detailsReid Kleckner2015-03-191-1/+1
| | | | llvm-svn: 232739
* Remove IDE_MI_APP_EXIT_OK msg on exit (MI)Ilia K2015-03-193-34/+0
| | | | | | | | | | | | | | Summary: Remove IDE_MI_APP_EXIT_OK msg on exit (MI) Reviewers: abidh Reviewed By: abidh Subscribers: lldb-commits, abidh Differential Revision: http://reviews.llvm.org/D8446 llvm-svn: 232738
* Ensure that we still parse preprocessed CUDA files as CUDA when we useArtem Belevich2015-03-198-5/+38
| | | | | | | | | -save-temps option. Summary: Fixes PR22926. Review: http://reviews.llvm.org/D8383 llvm-svn: 232737
* expose 64 bit addresses through MIIlia K2015-03-198-28/+32
| | | | | | | | | | | | | | | | | Summary: This changes all reporting of addresses from lldb-mi to be 64 bit capable. There could have been cases where a 64 bit address was getting truncated to 32 bit format. Patch from chuckr@microsoft.com Reviewers: abidh, ChuckR Reviewed By: abidh Subscribers: paulmaybee, ki.stfu, zturner, lldb-commits Differential Revision: http://reviews.llvm.org/D8238 llvm-svn: 232736
* Fix memory allocating inside signal handler (MI)Ilia K2015-03-193-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch fixes a memory allocating inside signal handler. This bug was found by @vharron: > Hi all, > > I noticed these thread sanitizer warnings while running lldb-mi tests on > Linux. > > WARNING: ThreadSanitizer: signal-unsafe call inside of a signal (pid=39721) > > #0 operator new(unsigned long) <null>:0 (lldb-mi-3.7.0+0x000000092b9d) > > #1 std::string::_Rep::_S_create(unsigned long, unsigned long, > std::allocator<char> const&) <null>:0 (libstdc++.so.6+0x0000000ba3b8) > > #2 CMICmnResources::GetStringFromResource(unsigned int, CMIUtilString&) > const > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp:434 > (lldb-mi-3.7.0+0x00000014ddd8) > > #3 CMICmnResources::GetString(unsigned int) const > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MICmnResources.cpp:371 > (lldb-mi-3.7.0+0x00000014db81) > > #4 sigwinch_handler(int) > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp:99 > (lldb-mi-3.7.0+0x0000001589ff) > > #5 __tsan::CallUserSignalHandler(__tsan::ThreadState*, bool, bool, int, > my_siginfo_t*, void*) tsan_interceptors.o:0 (lldb-mi-3.7.0+0x00000009f25f) > > #6 void std::this_thread::sleep_for<long, std::ratio<1l, 1000l> > >(std::chrono::duration<long, std::ratio<1l, 1000l> > const&) > /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/thread:279 > (lldb-mi-3.7.0+0x00000013243e) > > #7 CMIDriver::ReadStdinLineQueue() > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp:710 > (lldb-mi-3.7.0+0x000000155e62) > > #8 CMIDriver::DoMainLoop() > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp:631 > (lldb-mi-3.7.0+0x000000155d37) > > #9 non-virtual thunk to CMIDriver::DoMainLoop() > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriver.cpp:648 > (lldb-mi-3.7.0+0x000000155fbd) > > #10 CMIDriverMgr::DriverMainLoop() > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriverMgr.cpp:340 > (lldb-mi-3.7.0+0x000000159ee6) > > #11 main > /usr/local/google/home/vharron/ll/tot/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp:364 > (lldb-mi-3.7.0+0x000000158f60) Reviewers: vharron, abidh Reviewed By: abidh Subscribers: lldb-commits, abidh, vharron Differential Revision: http://reviews.llvm.org/D8256 llvm-svn: 232735
* Fix -break-insert for system functions (MI)Ilia K2015-03-194-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: # Fix -break-insert for system functions # Fix MiExecTestCase to use -break-insert instead of CLI "b" # Improve MiBreakTestCase: now it uses printf() instead of in-house function All tests pass on OS X. Test Plan: ``` $ bin/lldb-mi --interpreter (gdb) -file-exec-and-symbols ~/p/hello ^done (gdb) =shlibs-added,shlib-info=[num="1",name="hello",dyld-addr="-",reason="dyld",path="/Users/IliaK/p/hello",loaded_addr="-",dsym-objpath="/Users/IliaK/p/hello.dSYM/Contents/Resources/DWARF/hello"] -break-insert -f printf ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0xffffffff",func="??",file="??",fullname="??/??",line="0",pending=["printf"],times="0",original-location="printf"} (gdb) =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0xffffffff",func="??",file="??",fullname="??/??",line="0",pending=["printf"],times="0",original-location="printf"} -exec-run ^running ... *stopped,reason="breakpoint-hit",disp="del",bkptno="1",frame={addr="0x7fff8a476910",func="printf",args=[],file="??",fullname="??",line="-1"},thread-id="1",stopped-threads="all" (gdb) ``` Reviewers: abidh, clayborg Reviewed By: clayborg Subscribers: lldb-commits, clayborg, abidh Differential Revision: http://reviews.llvm.org/D8412 llvm-svn: 232734
* Add code to honor the match_not_bol and match_not_eol regex flats. Fixes ↵Marshall Clow2015-03-193-2/+104
| | | | | | PR#22651. Thanks to Jim Porter for the report and suggested fix. llvm-svn: 232733
* Add support for __nvvm_reflect changes in libdevice in CUDA-7.0Artem Belevich2015-03-192-5/+63
| | | | | | | | | | | | | | | | | | Summary: CUDA 7.0's libdevice uses slightly different IR to call __nvvm_reflect and that triggers an assertion in nvvm_reflect optimization pass. This change allows nvvm_reflect pass to deal with both old and new ways to pass an argument to __nvvm_reflect. Test Plan: ninja check-all Reviewers: eliben, echristo Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D8399 llvm-svn: 232732
* Revert "Improvement on sized deallocation from r230160"Reid Kleckner2015-03-195-147/+47
| | | | | | | | | This reverts commit r230580. extern_weak functions don't appear to work on Darwin (PR22951), so we'll need to come up with a new approach. llvm-svn: 232731
* Fixing dependencies for native tablegen.Chris Bieneman2015-03-191-4/+2
| | | | | | | | | | | The dependencies for cross-built tablegen were a bit confused. This fixes that. The following dependencies are now enforced: (1) Tablegen tasks depend on the native tablegen (2) Native tablegen depends on the cross-compiled tablegen Although the native tablegen doesn't actually require the cross tablegen, having this dependency forces the native tablegen to rebuild whenever the cross tablegen changes. llvm-svn: 232730
* Switch lowering: remove unnecessary ConstantInt casts. NFC.Hans Wennborg2015-03-192-34/+29
| | | | llvm-svn: 232729
* [Hexagon] Add support for vector instructionsKrzysztof Parzyszek2015-03-1949-40/+2912
| | | | llvm-svn: 232728
* [CMake] Don't pass in MSVC warning flags as definitions.Greg Bedwell2015-03-191-2/+9
| | | | | | | | | | | NFC currently but required as a prerequisite for using the Microsoft resource compiler in conjunction with CMake's ninja generator, which knows how to filter flags appropriately, but not definitions. Differential Revision: http://reviews.llvm.org/D8188 llvm-svn: 232727
* Devirtualize Attr and all subclasses.Benjamin Kramer2015-03-193-36/+58
| | | | | | | | | | | | We know all subclasses in tblgen so just generate a giant switch for the few virtual methods or turn them into a member variable using spare bits. The giant jump tables aren't pretty but still much smaller than a vtable for every attribute, shrinking Release+Asserts clang by ~400k. Also halves the size of the Attr base class. No functional change intended. llvm-svn: 232726
* [Hexagon] ENDLOOP is a non-reversible conditional branchKrzysztof Parzyszek2015-03-191-0/+2
| | | | llvm-svn: 232725
* Don't close pseudo terminal master file descriptor on EOFTamas Berghammer2015-03-191-0/+1
| | | | | | | | | | | | | Some application on Linux an all application on android close stdout and stderr during the libc exit stage. Previously the master file descriptor of the pseudo terminal used to communicate with the inferior was closed on an EOF causing a race condition and a possible SIGHUP on process exit. After this change the master file descriptor will be closed by the destructor of the GDBRemoteCommunicationServerLLGS class. Differential revision: http://reviews.llvm.org/D8436 llvm-svn: 232724
* Move ThreadSafetyReporter into an anonymous namespace. NFC.Benjamin Kramer2015-03-191-4/+4
| | | | llvm-svn: 232723
* Internalize PEI. NFC.Benjamin Kramer2015-03-192-79/+48
| | | | llvm-svn: 232722
* Add option to switch off putting header modules into the dependency file.Manuel Klimek2015-03-193-2/+18
| | | | llvm-svn: 232721
* [sparc] Small fix to r232719 to make 2007-12-17-InvokeAsm.ll pass on the ↵Daniel Sanders2015-03-191-0/+1
| | | | | | buildbot. llvm-svn: 232720
* [sparc] Only support the 'm' inline assembly memory constraint. NFC.Daniel Sanders2015-03-191-6/+0
| | | | | | | | | | | | | | | | Summary: SPARC doesn't seem to support any additional constraints. Therefore remove the target hook. No functional change intended. Reviewers: venkatra Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8214 llvm-svn: 232719
* [InstCombine] Don't fold a GEP into itself through a PHI nodeDaniel Jasper2015-03-192-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This can only occur (I think) through the back-edge of the loop. However, folding a GEP into itself means that the value of the previous iteration needs to be stored in the meantime, thus requiring an additional register variable to be live, but not actually achieving anything (the gep still needs to be executed once per loop iteration). The attached test case is derived from: typedef unsigned uint32; typedef unsigned char uint8; inline uint8 *f(uint32 value, uint8 *target) { while (value >= 0x80) { value >>= 7; ++target; } ++target; return target; } uint8 *g(uint32 b, uint8 *target) { target = f(b, f(42, target)); return target; } What happens is that the GEP stored in incptr2 is folded into itself through the loop's back-edge and the phi-node stored in loopptr, effectively incrementing the ptr by "2" in each iteration instead of "1". In this case, it is actually increasing the number of GEPs required as the GEP before the loop can't be folded away anymore. For comparison: With this patch: define i8* @test4(i32 %value, i8* %buffer) { entry: %cmp = icmp ugt i32 %value, 127 br i1 %cmp, label %loop.header, label %exit loop.header: ; preds = %entry br label %loop.body loop.body: ; preds = %loop.body, %loop.header %buffer.pn = phi i8* [ %buffer, %loop.header ], [ %loopptr, %loop.body ] %newval = phi i32 [ %value, %loop.header ], [ %shr, %loop.body ] %loopptr = getelementptr inbounds i8, i8* %buffer.pn, i64 1 %shr = lshr i32 %newval, 7 %cmp2 = icmp ugt i32 %newval, 16383 br i1 %cmp2, label %loop.body, label %loop.exit loop.exit: ; preds = %loop.body br label %exit exit: ; preds = %loop.exit, %entry %0 = phi i8* [ %loopptr, %loop.exit ], [ %buffer, %entry ] %incptr3 = getelementptr inbounds i8, i8* %0, i64 2 ret i8* %incptr3 } Without this patch: define i8* @test4(i32 %value, i8* %buffer) { entry: %incptr = getelementptr inbounds i8, i8* %buffer, i64 1 %cmp = icmp ugt i32 %value, 127 br i1 %cmp, label %loop.header, label %exit loop.header: ; preds = %entry br label %loop.body loop.body: ; preds = %loop.body, %loop.header %0 = phi i8* [ %buffer, %loop.header ], [ %loopptr, %loop.body ] %loopptr = phi i8* [ %incptr, %loop.header ], [ %incptr2, %loop.body ] %newval = phi i32 [ %value, %loop.header ], [ %shr, %loop.body ] %shr = lshr i32 %newval, 7 %incptr2 = getelementptr inbounds i8, i8* %0, i64 2 %cmp2 = icmp ugt i32 %newval, 16383 br i1 %cmp2, label %loop.body, label %loop.exit loop.exit: ; preds = %loop.body br label %exit exit: ; preds = %loop.exit, %entry %ptr2 = phi i8* [ %incptr2, %loop.exit ], [ %incptr, %entry ] %incptr3 = getelementptr inbounds i8, i8* %ptr2, i64 1 ret i8* %incptr3 } Review: http://reviews.llvm.org/D8245 llvm-svn: 232718
* clang-format: Fix another bug in wrapping around "*".Daniel Jasper2015-03-192-3/+7
| | | | | | | | | | | | Before: void aaaaa( aaaaaaaaaaaa* aaaaaaaaaaaaaa) {} // even violation the column limit After: void aaaaa(aaaaaaaaaaaa* aaaaaaaaaaaaaa) {} llvm-svn: 232717
* Don't print debugging messages to stdout.Ed Schouten2015-03-191-18/+18
| | | | | | | | | | There is some debugging code in cxa_demangle.cpp that prints messages on stdout. In general this is not safe, as the program itself may use stdout to write its output. Change this code to write to stderr. Differential Revision: http://reviews.llvm.org/D8167 llvm-svn: 232716
* Fix double (gdb) prompt when command doesn't existIlia K2015-03-191-8/+6
| | | | llvm-svn: 232715
* Add support for kfreebsd. Thanks to Jan HenkeSylvestre Ledru2015-03-191-1/+1
| | | | | | | Reported on the Debian BTS: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780106 llvm-svn: 232714
* Fix error handling in CMIDriver::DoMainLoop after r215223 (MI)Ilia K2015-03-191-3/+4
| | | | llvm-svn: 232713
* [OPENMP] Fixed bug in codegen of 'atomic write'.Alexey Bataev2015-03-192-14/+14
| | | | | | Fixed codegen for exit/continue order after success/failed atomic cmpxchg instruction for 'atomic write' construct. llvm-svn: 232712
* Add some missing __isl_give/__isl_keep annotationsTobias Grosser2015-03-191-7/+10
| | | | llvm-svn: 232711
* Add forgotten 'FileCheck' to tiling test casesTobias Grosser2015-03-193-16/+22
| | | | | | | | These test cases did not verify the CHECK lines at all. We add the FileCheck and also fix some broken CHECK lines. Being here, we extend the checks to cover the whole loop structure. llvm-svn: 232710
* Update isl to 94d707dTobias Grosser2015-03-19390-1222/+6670
| | | | | | | | | The major improvements are: - Extended schedule tree support - AST generation from schedule trees llvm-svn: 232709
* [ARM] Implement static (initial exec) TLS modelDenis Protivensky2015-03-197-5/+298
| | | | | | | | This includes handling of R_ARM_TLS_IE32 and R_ARM_TLS_LE32 relocs. Differential Revision: http://reviews.llvm.org/D8353 llvm-svn: 232708
* [Mips] Implement R_MIPS_PC21_S2 relocation handlingSimon Atanasyan2015-03-192-0/+66
| | | | llvm-svn: 232707
* [Mips] Recognize and check compatibility MIPS32R6 / MIPS64R6 ISA'sSimon Atanasyan2015-03-193-0/+90
| | | | llvm-svn: 232706
* [Mips] Replace "hand-made" function by the `llvm::SignExtend32()` routineSimon Atanasyan2015-03-191-12/+7
| | | | | | No functional changes. llvm-svn: 232705
OpenPOWER on IntegriCloud