summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix a typo correction crash when resolving ambiguous corrections.Kaelyn Takata2015-06-252-0/+32
| | | | | | | | | | | In certain cases, the tree transform would introduce new TypoExprs while trying one of the corrections, invalidating the unique_ptr in the state reference, and also causing a TypoExpr to exist that will never be corrected since it doesn't exist in the final corrected expression. The simple solution to both problems is to temporarily disable typo correction while handling potentially ambiguous typo corrections. llvm-svn: 240734
* AsmPrinter: Convert DIE::Values to a linked listDuncan P. N. Exon Smith2015-06-2511-268/+463
| | | | | | | | | | | | | | | | Change `DIE::Values` to a singly linked list, where each node is allocated on a `BumpPtrAllocator`. In order to support `push_back()`, the list is circular, and points at the tail element instead of the head. I abstracted the core list logic out to `IntrusiveBackList` so that it can be reused for `DIE::Children`, which also cares about `push_back()`. This drops llc memory usage from 799 MB down to 735 MB, about 8%. (I'm looking at `llc` memory usage on `verify-uselistorder.lto.opt.bc`; see r236629 for details.) llvm-svn: 240733
* llvm api change.Michael J. Spencer2015-06-251-5/+5
| | | | llvm-svn: 240732
* [ELF] Move ELF{32,64}{L,B}E typedefs to llvm.Michael J. Spencer2015-06-251-0/+5
| | | | llvm-svn: 240731
* [ELF] Add some accessors for lld.Michael J. Spencer2015-06-252-0/+15
| | | | llvm-svn: 240730
* Make llvm-dwarfdump exit with non-zero exit code if error was occured.Alexey Samsonov2015-06-253-13/+18
| | | | llvm-svn: 240729
* rdar://problem/21469556Han Ming Ong2015-06-253-17/+44
| | | | | | Make sure that the memory report is correct for 64-bit devices. llvm-svn: 240728
* PPCISelLowering.cpp: Appease PR23956. [-Wdocumentation]NAKAMURA Takumi2015-06-251-6/+6
| | | | llvm-svn: 240727
* Split test up into two target-spcific directories.Adrian Prantl2015-06-253-104/+148
| | | | llvm-svn: 240726
* [docs] Several updates to the Address Sanitizer webpage.Anna Zaks2015-06-252-46/+103
| | | | | | | | | | | | | | | | | - Added the description of the interceptor suppression. - Re-organized a bit: grouped a few things under the Issue Suppression section, grouped IOC and leaks under a section, placed symbolication info into Symbolizing the Reports section.. - In supported platforms: "MacOS" -> "OS X"; added "iOS Simulator" - Added a paragraph to the Usage section describing when DYLD_INSERT_LIBRARIES might need to be used. - "attribute((no_sanitize_address))" -> "__attribute__((no_sanitize("address")))" - Updated Leak Sanitizer page with most up to date info. .... http://reviews.llvm.org/D10559 llvm-svn: 240725
* [asan] Do not unset DYLD_ROOT_PATH before calling atos on DarwinAnna Zaks2015-06-253-7/+26
| | | | | | | | | | | | | | | | | We were unsetting DYLD_ROOT_PATH before calling atos on Darwin in order to address it not working for symbolicating 32 bit binaries. (atos essentiall tries to respawn as a 32 bit binary and it's disallowed to respawn if DYLD_ROOT_PATH is set ... ) However, processes rely on having DYLD_ROOT_PATH set under certain conditions, so this is not the right fix. In particular, this always crashes when running ASanified process under the debugger in Xcode with iOS simulator, which is a very important workflow for us to support. This patch reverts the unsetting of the DYLD_ROOT_PATH. The correct fix to the misbehavior on 32-bit binaries should happen inside atos. http://reviews.llvm.org/D10722 llvm-svn: 240724
* [asan] Do not instrument special purpose LLVM sections.Anna Zaks2015-06-253-2/+10
| | | | | | | | | | | | | | Do not instrument globals that are placed in sections containing "__llvm" in their name. This fixes a bug in ASan / PGO interoperability. ASan interferes with LLVM's PGO, which places its globals into a special section, which is memcpy-ed by the linker as a whole. When those goals are instrumented, ASan's memcpy wrapper reports an issue. http://reviews.llvm.org/D10541 llvm-svn: 240723
* [asan] Don't run stack malloc on functions containing inline assembly.Anna Zaks2015-06-252-4/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | It makes LLVM run out of registers even on 64-bit platforms. For example, the following test case fails on darwin. clang -cc1 -O0 -triple x86_64-apple-macosx10.10.0 -emit-obj -fsanitize=address -mstackrealign -o ~/tmp/ex.o -x c ex.c error: inline assembly requires more registers than available void TestInlineAssembly(const unsigned char *S, unsigned int pS, unsigned char *D, unsigned int pD, unsigned int h) { unsigned int sr = 4, pDiffD = pD - 5; unsigned int pDiffS = (pS << 1) - 5; char flagSA = ((pS & 15) == 0), flagDA = ((pD & 15) == 0); asm volatile ( "mov %0, %%"PTR_REG("si")"\n" "mov %2, %%"PTR_REG("cx")"\n" "mov %1, %%"PTR_REG("di")"\n" "mov %8, %%"PTR_REG("ax")"\n" : : "m" (S), "m" (D), "m" (pS), "m" (pDiffS), "m" (pDiffD), "m" (sr), "m" (flagSA), "m" (flagDA), "m" (h) : "%"PTR_REG("si"), "%"PTR_REG("di"), "%"PTR_REG("ax"), "%"PTR_REG("cx"), "%"PTR_REG("dx"), "memory" ); } http://reviews.llvm.org/D10719 llvm-svn: 240722
* COFF: Rename /opt:icf -> /opt:lldicf.Rui Ueyama2015-06-252-2/+2
| | | | | | | | ICF implemented in LLD is so experimental that we don't want to enable that even if /opt:icf option is passed. I'll rename it back once the feature is complete. llvm-svn: 240721
* Remove `requires` for x86 CPU features.Sean Silva2015-06-251-25/+0
| | | | | | | | | Ever since the target attributes change, we don't need to guard these headers with `requires`. Actually it's a bit worse, because if we do then they are included textually under the covers, causing declarations to appear in submodules they aren't supposed to be in. llvm-svn: 240720
* COFF: Better error message for duplicate symbols.Rui Ueyama2015-06-254-12/+26
| | | | | | | Now the symbol table prints out not only symbol names but also file names for duplicate symbols. llvm-svn: 240719
* Fix the test added in r240710.Jonathan Roelofs2015-06-251-1/+1
| | | | llvm-svn: 240718
* Debug Info: Add basic test coverage for the DWARF encoding of bitfields.Adrian Prantl2015-06-251-0/+104
| | | | | | | | While looking at a couple of bugs in the debug info output for bitfields I noticed that there wasn't a single regression test to test my changes against, so here's a start. llvm-svn: 240717
* [CFI] Diagnose when we CFI in diagnostic mode is unavailable on a toolchain.Alexey Samsonov2015-06-252-1/+20
| | | | | | | | | | | | | | | | | | | | | | | Summary: Namely, we must have proper C++ABI support in UBSan runtime. We don't have a good way to check for that, so just assume that C++ABI support is there whenever -fsanitize=vptr is supported (i.e. only on handful of platforms). Exact diagnostic is also tricky. It's not "cfi" that is unsupported, just the diagnostic mode. So, I suggest to report that "-fno-sanitize-trap=cfi-foobar" is incompatible with a given target toolchain. Test Plan: regression test suite Reviewers: pcc Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D10751 llvm-svn: 240716
* Display profile file name when emitting a file not found diagnostic.Diego Novillo2015-06-252-3/+4
| | | | | | | | | When a profile file cannot be opened, we used to display just the error message but not the name of the profile the compiler was trying to open. This will become useful in the next set of patches that introduce GCC-compatible flags to specify profiles. llvm-svn: 240715
* Xcode project cleanups.Greg Clayton2015-06-251-250/+22
| | | | | | | - Don't have any header files claim to be part of the lldb-core target. If they are part of the lldb-core target then any file can just #include the header file name without the prefix (#include "Foo.h") when the cmake/make/other builds would require a full path (#include "lldb/Core/Foo.h"). This will help make sure the builds succeed on all platforms when changes are made on MacOSX. - Add the Hexagon dynamic loader to the DynamicLoader plug-in folder so it gets compiled in MacOSX. There was a recent build bot failure that wasn't caught due to this code not being compile in the MacOSX build llvm-svn: 240714
* Mark armv7em and armv7m as compatible architectures.Jason Molenda2015-06-251-1/+31
| | | | | | <rdar://problem/21244671> llvm-svn: 240713
* Commit file that was missing 240466.Greg Clayton2015-06-251-0/+490
| | | | | | <rdar://problem/21494354> llvm-svn: 240712
* Unbreak the build.Greg Clayton2015-06-252-2/+2
| | | | llvm-svn: 240711
* This should actually fix the broken bots.Chris Bieneman2015-06-251-0/+3
| | | | llvm-svn: 240710
* DAGCombiner: Use pop_back_val()Matt Arsenault2015-06-251-2/+1
| | | | llvm-svn: 240709
* Add an ELFSymbolRef type.Rafael Espindola2015-06-255-20/+63
| | | | | | | This allows user code to say Sym.getSize() instead of having to manually fetch the object. llvm-svn: 240708
* [Parse] Allow 'constexpr' in condition declarationsMeador Inge2015-06-255-8/+40
| | | | | | | | | | | | | | | | | This patch implements the functionality specified by DR948. The changes are two fold. First, the parser was modified to allow 'constexpr's to appear in condition declarations (which was a hard error before). Second, Sema was modified to cleanup maybe odr-used declarations by way of a call to 'ActOnFinishFullExpr'. As 'constexpr's were not allowed in condition declarations before the cleanup wasn't necessary (such declarations were always odr-used). This fixes PR22491. Differential Revision: http://reviews.llvm.org/D8978 llvm-svn: 240707
* COFF: Merge DefinedRegular and DefinedCOMDAT.Rui Ueyama2015-06-256-86/+39
| | | | | | | | | I split them in r240319 because I thought they are different enough that we should treat them as different types. It turned out that that was not a good idea. They are so similar that we ended up having many duplicate code. llvm-svn: 240706
* IAS: Use the root macro instanciation for locationFrederic Riss2015-06-252-2/+16
| | | | | | | | | | | | | | r224810 fixed the handling of macro debug locations in AsmParser. This patch fixes the logic to actually do what was intended: it uses the first macro of the macro stack instead of the last one. The updated testcase shows that the current scheme doesn't work when macro instanciations are nested and multiple files are used. Reviewers: compnerd Differential Revision: http://reviews.llvm.org/D10463 llvm-svn: 240705
* [Object][ELF] Add support for dumping dynamic relocations when sections are ↵Michael J. Spencer2015-06-256-4/+104
| | | | | | stripped. llvm-svn: 240703
* Resubmitting 240466 after fixing the linux test suite failures.Greg Clayton2015-06-2548-470/+1176
| | | | | | | | | | | | | | | A few extras were fixed - Symbol::GetAddress() now returns an Address object, not a reference. There were places where people were accessing the address of a symbol when the symbol's value wasn't an address symbol. On MacOSX, undefined symbols have a value zero and some places where using the symbol's address and getting an absolute address of zero (since an Address object with no section and an m_offset whose value isn't LLDB_INVALID_ADDRESS is considered an absolute address). So fixing this required some changes to make sure people were getting what they expected. - Since some places want to access the address as a reference, I added a few new functions to symbol: Address &Symbol::GetAddressRef(); const Address &Symbol::GetAddressRef() const; Linux test suite passes just fine now. <rdar://problem/21494354> llvm-svn: 240702
* dsymutil: Split out patchStmtList(), NFCDuncan P. N. Exon Smith2015-06-251-12/+13
| | | | | | | | | | | | | | | | Split out code to patch up the `DW_AT_stmt_list` for the cloned DIE, and reorganize it so that it doesn't depend on `DIE::values_begin()` and `DIE::values_end()` (which I'm trying to kill off). David Blaikie and I talked about adding a range-algorithm version of `std::find_if()`, but the assertion *still* required getting at the end iterator. IMO, a separate helper function with an early return is easier to reason about here. A follow-up commit that removes `DIE::setValue()` and mutates the `DIEValue` directly is coming shortly. llvm-svn: 240701
* [modules] Properly merge visibility of class definitions that got merged whileRichard Smith2015-06-256-10/+26
| | | | | | parsing then merged again when the module was loaded. llvm-svn: 240700
* fix typos; NFCSanjay Patel2015-06-251-4/+4
| | | | llvm-svn: 240699
* [LLDBSwigPythonCallTypeScript] Remove redundant call to type summary func.Siva Chandra2015-06-251-2/+0
| | | | | | | | | | | | Reviewers: clayborg, granata.enrico Reviewed By: clayborg, granata.enrico Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D10625 llvm-svn: 240698
* COFF: Fix lexer for the module-definition file.Rui Ueyama2015-06-252-3/+14
| | | | | | Previously it would hang if there's a stray punctuation (e.g. ?). llvm-svn: 240697
* docs: Fix bad link in SafeStack.rst.Peter Collingbourne2015-06-251-1/+1
| | | | llvm-svn: 240696
* llvm-nm: Don't print mapping symbols.Rafael Espindola2015-06-252-0/+20
| | | | | | This matches the behavior of gnu nm. Fixes pr23930. llvm-svn: 240695
* Use foreach loop over constant operands. NFC.Pete Cooper2015-06-255-14/+9
| | | | | | | A number of places had explicit loops over Constant::operands(). Just use foreach loops where possible. llvm-svn: 240694
* Speculative fix for the broken bots.Chris Bieneman2015-06-251-2/+1
| | | | llvm-svn: 240693
* [msan] Teach sanitizers about the PPC64 ptrace syscallJay Foad2015-06-254-9/+19
| | | | | | | | | | | | | | | | | Summary: This fixes test/msan/Linux/syscalls.cc, and should also fix the ppc64 sanitizer buildbots which are currently failing in "make check-sanitizer". Reviewers: samsonov, wschmidt, eugenis Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10734 llvm-svn: 240692
* [modules] Fix findDirectiveAtLoc to not call a member function on a null ↵Richard Smith2015-06-251-1/+3
| | | | | | | | | | | pointer. This is exercised by existing tests, and fixes a failure with -fsanitize=null. No observable change otherwise; the code happened to do the right thing in practice under recent versions of Clang and GCC because MacroDirective::getDefinition happens to check whether this == null. llvm-svn: 240691
* [msan] Fix SetShadow for mappings at the end of the application address spaceJay Foad2015-06-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | Summary: On PPC64 if you disable ASLR (or run under gdb) you're likely to see mmap returning a mapping right at the end of the application address space region. This caused SetShadow to call MEM_TO_SHADOW() on the last+1 address in the region, which seems wrong to me; how can MEM_TO_SHADOW() distinguish this from the first address in the following region? Fixed by only calling MEM_TO_SHADOW() once, on the start address. Reviewers: samsonov, wschmidt, eugenis Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10735 llvm-svn: 240690
* Enable ISL's small integer optimizationMichael Kruse2015-06-254-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: With small integer optimization (short: sio) enabled, ISL uses 32 bit integers for its arithmetic and only falls back to a big integer library (in the case of Polly: IMath) if an operation's result is too large. This gives a massive performance boost for most application using ISL. For instance, experiments with ppcg (polyhedral source-to-source compiler) show speed-ups of 5.8 (compared to plain IMath), respectively 2.7 (compared to GMP). In Polly, a smaller fraction of the total compile time is taken by ISL, but the speed-ups are still very significant. The buildbots measure compilation speed-up up to 1.8 (oourafft, floyd-warshall, symm). All Polybench benchmarks compile in at least 9% less time, and about 20% less on average. Detailed Polybench compile time results (median of 10): correlation -25.51% covariance -24.82% 2mm -26.64% 3mm -28.69% atax -13.70% bicg -10.78% cholesky -40.67% doitgen -11.60% gemm -11.54% gemver -10.63% gesummv -11.54% mvt -9.43% symm -41.25% syr2k -14.71% syrk -14.52% trisolv -17.65% trmm -9.78% durbin -19.32% dynprog -9.09% gramschmidt -15.38% lu -21.77% floyd-warshall -42.71% reg_detect -41.17% adi -36.69% fdtd-2d -32.61% fdtd-apml -21.90% jacobi-1d-imper -9.41% jacobi-2d-imper -27.65% seidel-2d -31.00% Reviewers: grosser Reviewed By: grosser Subscribers: Meinersbur, llvm-commits, pollydev Projects: #polly Differential Revision: http://reviews.llvm.org/D10506 llvm-svn: 240689
* [Sanitizer] Set minimum supported Mac OS X version to 10.9, if it wasn't ↵Alexey Samsonov2015-06-251-5/+7
| | | | | | | | | | | specified explicitly. -fsanitize=vptr is a UBSan feature that doesn't work on older Mac OS X versions, and we don't want to penalize users that use modern OS with default configuration. Those who want to target older OS versions, can specify that versions explicitly. llvm-svn: 240688
* tsan: fix handling of dup2 Dmitry Vyukov2015-06-255-14/+105
| | | | | | | | | | | | Previously tsan modelled dup2(oldfd, newfd) as write on newfd. We hit several cases where the write lead to false positives: 1. Some software dups a closed pipe in place of a socket before closing the socket (to prevent races actually). 2. Some daemons dup /dev/null in place of stdin/stdout. On the other hand we have not seen cases when write here catches real bugs. So model dup2 as read on newfd instead. llvm-svn: 240687
* Add -miphonesimulator-version-min as alias to -ios-simulator-version-min.Chris Bieneman2015-06-252-0/+6
| | | | | | | | | | | | | | | Summary: For better or worse the OS X command line tools refer to the iOS simulator as iphonesimucator. We should provide an alias flag -miphonesimulator-version-min that matches a consistent pattern with the other tools. This is in the interest of making it easier for people to write platform-agnostic darwin build scripts. Reviewers: bob.wilson, bogner Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D10743 llvm-svn: 240686
* [clang-fuzzer] Update clang-fuzzer to API change in r240225.Alexey Samsonov2015-06-251-1/+4
| | | | llvm-svn: 240685
* We don't need the targets to read objects.Rafael Espindola2015-06-252-4/+0
| | | | llvm-svn: 240684
OpenPOWER on IntegriCloud