summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [sanitizer] Break infinite recursion in case of recursive failed CHECKsKuba Brecka2016-05-121-0/+8
| | | | | | | | While debugging ASan and TSan, I sometimes get a recursion during a failed CHECK processing. CheckFailed can call a lot of code (printing, unwinding a stack trace, symbolicating, ...) and this can fail another CHECK. This means I sometimes see a crash due to a infinite recursion stack overflow. Let's stop after 10 failed CHECKs and just kill the process immediately. I also added a Sleep(2) call before the trap, so that other threads still get a chance to print their failed CHECKs. Differential Revision: http://reviews.llvm.org/D20047 llvm-svn: 269288
* Revert "[mips][microMIPS] Implement CFC*, CTC* and LDC* instructions"Hrvoje Varga2016-05-1217-220/+15
| | | | | | This reverts commit r269176 as it caused test-suite failure. llvm-svn: 269287
* Refactor duplicated code. NFC.Rafael Espindola2016-05-122-33/+39
| | | | | | Linkage is always followed by visibility and dll storage. llvm-svn: 269286
* [scan-build] fix warnings emitted on LLVM ARM code baseRenato Golin2016-05-122-2/+4
| | | | | | | | | Fix "Logic error" warnings of the type "Called C++ object pointer is null" reported by Clang Static Analyzer. Patch by Apelete Seketeli. llvm-svn: 269285
* New hwloc API compatibilityPaul Osmialowski2016-05-121-0/+13
| | | | | | Differential Revision: http://reviews.llvm.org/D19628 llvm-svn: 269284
* [mips][ias] Correct ELF eflags when Octeon is the target.Daniel Sanders2016-05-125-27/+59
| | | | | | | | | | Reviewers: sdardis Subscribers: petarj, mpf, dsanders, spetrovic, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D18899 llvm-svn: 269283
* clang-format: [JS] respect clang-format off when requoting strings.Martin Probst2016-05-122-1/+9
| | | | | | | | | | Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D20200 llvm-svn: 269282
* Fix a race in ProcessGDBRemote::MonitorDebugServerProcessPavel Labath2016-05-122-69/+42
| | | | | | | | | | | | | | | | | | | | | | Summary: MonitorDebugServerProcess went to a lot of effort to make sure its asynchronous invocation does not cause any mischief, but it was still not race-free. Specifically, in a quick stop-restart sequence (like the one in TestAddressBreakpoints) the copying of the process shared pointer via target_sp->GetProcessSP() was racing with the resetting of the pointer in DeleteCurrentProcess, as they were both accessing the same shared_ptr object. To avoid this, I simply pass in a weak_ptr to the process when the callback is created. Locking this pointer is race-free as they are two separate object even though they point to the same process instance. This also removes the need for the complicated tap-dance around retrieving the process pointer. Reviewers: clayborg Subscribers: tberghammer, lldb-commits Differential Revision: http://reviews.llvm.org/D20107 llvm-svn: 269281
* [mips][ias] Handle N64 compound relocations and R_MIPS_SUB in ↵Daniel Sanders2016-05-123-15/+51
| | | | | | | | | | | | | | | | | | | needsRelocateWithSymbol() Summary: This eliminates the default case for N64 that was left out of r269047. The change to R_MIPS_SUB is needed in this patch to make this testable since %lo(%neg(%gp_rel(foo))) and %hi(%neg(%gp_rel(foo))) remain the only ways to get a compound relocation from the assembler. Reviewers: sdardis, rafael Subscribers: dsanders, llvm-commits, sdardis Differential Revision: http://reviews.llvm.org/D20097 llvm-svn: 269280
* [Driver] Squash misleading indentation warning.Marcin Koscielnicki2016-05-121-6/+6
| | | | llvm-svn: 269279
* [clang-tidy] Ignore using-declarations defined in marcro in ↵Haojian Wu2016-05-122-0/+12
| | | | | | | | | | | | misc-unused-using-decls checks. Reviewers: djasper Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20197 llvm-svn: 269278
* [ASan] [SystemZ] Add -mbackchain to test cflags.Marcin Koscielnicki2016-05-121-0/+2
| | | | | | | | | This is needed for proper operation of the fast unwinder, see the discussion on D18895. Differential Revision: http://reviews.llvm.org/D19898 llvm-svn: 269277
* Revert "[VFS] Reapply r269100: Reconstruct the VFS overlay tree for more ↵Bruno Cardoso Lopes2016-05-122-109/+2
| | | | | | | | | | accurate lookup" Reverts r269270, buildbots still failing: http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/12119 http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/2847 llvm-svn: 269276
* [clang-tidy] Improve misc-redundant-expression and decrease false-positiveEtienne Bergeron2016-05-123-17/+143
| | | | | | | | | | | | | | | | | | Summary: This patch is adding support for conditional expression and overloaded operators. To decrease false-positive, this patch is adding a list of banned macro names that has multiple variant with same integer value. Also fixed support for template instantiation and added an unittest. Reviewers: alexfh Subscribers: klimek, Sarcasm, cfe-commits Differential Revision: http://reviews.llvm.org/D19703 llvm-svn: 269275
* Add an AST matcher for string-literal lengthEtienne Bergeron2016-05-124-11/+70
| | | | | | | | | | | | | | | | Summary: This patch is adding support for a matcher to check string literal length. This matcher is used in clang-tidy checkers and is part of this refactoring: see: http://reviews.llvm.org/D19841 Reviewers: sbenza, klimek, aaron.ballman Subscribers: alexfh, klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D19876 llvm-svn: 269274
* [WebAssembly] Fast-isel support for calls, arguments, and selects.Dan Gohman2016-05-125-56/+333
| | | | llvm-svn: 269273
* [PowerPC] Fix a DAG replacement bug in PPCTargetLowering::DAGCombineExtBoolTruncHal Finkel2016-05-122-10/+57
| | | | | | | | | | | | | | | While promoting nodes in PPCTargetLowering::DAGCombineExtBoolTrunc, it is possible for one of the nodes to be replaced by another. To make sure we do not visit the deleted nodes, and to make sure we visit the replacement nodes, use a list of HandleSDNodes to track the to-be-promoted nodes during the promotion process. The same fix has been applied to the analogous code in PPCTargetLowering::DAGCombineTruncBoolExt. Fixes PR26985. llvm-svn: 269272
* [MS ABI] Don't crash when zero-initializing a vbase which contains a vbaseDavid Majnemer2016-05-122-0/+25
| | | | | | | | | | | | | | | | Bases can be zero-initialized: the storage is zero-initialized before the base constructor is run. The MS ABI has a quirk where base VBPtrs are not installed by the base constructor but by the most derived class. In particular, they are installed before the base constructor is run. The derived constructor must be careful to zero-initialize only the bits of the class which haven't already been populated by virtual base pointers. While we correctly avoided this scenario, we didn't handle the case where the base class has virtual bases which have virtual bases. llvm-svn: 269271
* [VFS] Reapply r269100: Reconstruct the VFS overlay tree for more accurate lookupBruno Cardoso Lopes2016-05-122-2/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way we currently build the internal VFS overlay representation leads to inefficient path search and might yield wrong answers when asked for recursive or regular directory iteration. Currently, when reading an YAML file, each YAML root entry is placed inside a new root in the filesystem overlay. In the crash reproducer, a simple "@import Foundation" currently maps to 43 roots, and when looking up paths, we traverse a directory tree for each of these different roots, until we find a match (or don't). This has two consequences: - It's slow. - Directory iteration gives incomplete results since it only return results within one root - since contents of the same directory can be declared inside different roots, the result isn't accurate. This is in part fault of the way we currently write out the YAML file when emitting the crash reproducer - we could generate only one root and that would make it fast and correct again. However, we should not rely on how the client writes the YAML, but provide a good internal representation regardless. This patch builds a proper virtual directory tree out of the YAML representation, allowing faster search and proper iteration. Besides the crash reproducer, this potentially benefits other VFS clients. llvm-svn: 269270
* [SCCP] Resolve shifts beyond the bitwidth to undefDavid Majnemer2016-05-123-0/+115
| | | | | | | | | Shifts beyond the bitwidth are undef but SCCP resolved them to zero. Instead, DTRT and resolve them to undef. This reimplements the transform which caused PR27712. llvm-svn: 269269
* AMDGPU: Fix getIntegerAttribute type and error messageMatt Arsenault2016-05-122-4/+6
| | | | llvm-svn: 269268
* [Layout] Add a new test case for optimal rotationXinliang David Li2016-05-121-0/+43
| | | | | | Enabled by -force-precise-rotation-cost option llvm-svn: 269267
* [Layout] Add a new option (NFC)Xinliang David Li2016-05-121-1/+7
| | | | | | | | | | Currently cost based loop rotation algo can only be turned on with two conditions: the function has real profile data, and -precise-rotation-cost flag is turned on. This is not convenient for developers to experiment when profile is not available. Add a new option to force the new rotation algorithm -force-precise-rotation-cost llvm-svn: 269266
* AMDGPU: Fix breaking IR on instructions with multiple pointer operandsMatt Arsenault2016-05-124-8/+401
| | | | | | | | | | | | | The promote alloca pass would attempt to promote an alloca with a select, icmp, or phi user, even though the other operand was from a non-promotable source, producing a select on two different pointer types. Only do this if we know that both operands derive from the same alloca. In the future we should be able to relax this to an alloca which will also be promoted. llvm-svn: 269265
* [obj2yaml] Adding Error/Expected to macho2yamlChris Bieneman2016-05-123-11/+45
| | | | | | I figure if I'm adding Mach support I may as well use the new fancy Error model. llvm-svn: 269264
* [AArch64] Add support for unscaled narrow stores in getUsefulBitsForUse.Chad Rosier2016-05-122-0/+40
| | | | llvm-svn: 269263
* Appease MSVC with curly bracesSanjoy Das2016-05-121-1/+2
| | | | llvm-svn: 269262
* All llvm.deoptimize declarations must use the same calling conventionSanjoy Das2016-05-1210-53/+108
| | | | | | | | | | | | | | | | | This new verifier rule lets us unambigously pick a calling convention when creating a new declaration for `@llvm.experimental.deoptimize.<ty>`. It is also congruent with our lowering strategy -- since all calls to `@llvm.experimental.deoptimize` are lowered to calls to `__llvm_deoptimize`, it is reasonable to enforce a unique calling convention. Some of the tests that were breaking this verifier rule have had to be split up into different .ll files. The inliner was violating this rule as well, and has been fixed to avoid producing invalid IR. llvm-svn: 269261
* [AArch64] Remove floating-point narrow stores from getUsefulBitsForUse.Chad Rosier2016-05-121-2/+0
| | | | | | | While not impossible, it's unlikely we'd be performing bitwise operations on FP values. llvm-svn: 269260
* Restore NULL flag check in __kmp_null_resume_wrapperHal Finkel2016-05-121-0/+2
| | | | | | | | | | This reverts a presumaby-unintentional change in: r268640 - [STATS] Use partitioned timer scheme and fixes segfaults in an x86_64 debug build of the runtime library. llvm-svn: 269259
* SDAG: Implement Select instead of SelectImpl in ARMDAGToDAGISelJustin Bogner2016-05-121-258/+347
| | | | | | | | | | | | This is a large change, but it's pretty mechanical: - Where we were returning a node before, call ReplaceNode instead. - Where we would return null to fall back to another selector, rename the method to try* and return a bool for success. - Where we were calling SelectNodeTo, just return afterwards. Part of llvm.org/pr26808. llvm-svn: 269258
* [tooling] Remove redundant inline keywordEtienne Bergeron2016-05-121-4/+4
| | | | | | | | | | | | | | | | | | | Summary: The inline keywords are redundant. Introduce by this commit to try to fix broken build bots: http://reviews.llvm.org/D20180 Tested on Debug and Release build [linux]. Tested on Release + Shared (-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON) [linux] Tested on Release [windows] Reviewers: alexfh Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D20189 llvm-svn: 269257
* SDAG: Clean up dangling nodes in ARMISelDAGToDAG::SelectImplJustin Bogner2016-05-121-1/+7
| | | | | | | | | When we convert to the void Select interface, leaving unreferenced nodes around won't be allowed anymore. Part of llvm.org/pr26808. llvm-svn: 269256
* libc++abi: make __cxa_call_unexpected visibleSaleem Abdulrasool2016-05-111-1/+1
| | | | | | | This may be invoked by the compiler, and needs to be made available so that the users can reference it. llvm-svn: 269255
* [profile] profile writing cleanupXinliang David Li2016-05-111-34/+16
| | | | | | | | Do not precompute value counts for all sites. This eliminates one more use of dynamic allocation in profiler writer. llvm-svn: 269254
* [profile] profile writing cleanupXinliang David Li2016-05-111-34/+16
| | | | | | | | Do not precompute value counts for all sites. This eliminates one more use of dynamic allocation in profiler writer. llvm-svn: 269253
* Revert "[SCCP] Partially propagate informations when the input is not fully ↵Davide Italiano2016-05-112-4/+0
| | | | | | | | defined." This reverts commit r269105 as it caused PR27712. llvm-svn: 269252
* [ThinLTO] Don't re-analyze callee at same threshold unnecessarilyTeresa Johnson2016-05-111-1/+1
| | | | | | | | | This should just be a compile-time change. Correct the check for whether we have already analyzed the callee when making summary based decisions. There is no need to reprocess one at the same threshold as when it was last processed. llvm-svn: 269251
* Keep original source path and mapped path in LineEntryTed Woodward2016-05-1110-33/+57
| | | | | | | | | | | | | | | | | Summary: The "file" variable in a LineEntry was mapped using target.source-map, except when stepping through inlined code. This patch adds a new variable to LineEntry, "original_file", that contains the original file from the debug info. "file" will continue to (possibly) be mapped. Some code has been changed to use "original_file". This is code dealing with symbols. Code dealing with source files will still use "file". Reviewers, please confirm that these particular changes are correct. Tests run on Ubuntu 12.04 show no regression. Reviewers: clayborg, jingham Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20135 llvm-svn: 269250
* Fix a bug when hoist spill to a BB with landingpad successor.Wei Mi2016-05-112-6/+72
| | | | | | | | | | | | | | | This is to fix the bug in https://llvm.org/bugs/show_bug.cgi?id=27612. When spill is hoisted to a BB with landingpad successor, and if the VNI of the spill reg lives into the landingpad successor, the spill should be inserted before the call which may throw exception. InsertPointAnalysis is used to compute the safe insert point. http://reviews.llvm.org/D20027 is a preparing patch for this patch. Differential Revision: http://reviews.llvm.org/D19884. llvm-svn: 269249
* [NFC] Extract LastSplitPoint computation from SplitAnalysis to a new classWei Mi2016-05-112-64/+101
| | | | | | | | | | | | InsertPointAnalysis. Because both split and spill hoisting want to use LastSplitPoint computation result, extract the LastSplitPoint computation from SplitAnalysis class which also contains a bunch of other analysises only related to split. Differential Revision: http://reviews.llvm.org/D20027. llvm-svn: 269248
* SDAG: Use ReplaceNode here, not ReplaceUsesJustin Bogner2016-05-111-1/+1
| | | | | | | | | This was a typo in an earlier commit - there's no point in keeping the old node around here. Noticed by Meador Inge. Thanks! llvm-svn: 269245
* Initial add for MachO support for yaml2objChris Bieneman2016-05-114-1/+30
| | | | | | | | Adding the initial files for adding MachO support to yaml2obj. Passing a MachO file will result in an error. I will be implementing obj2yaml and yaml2obj for MachO in parallel so that one can be used to test the other. llvm-svn: 269244
* Initial add for MachO support for obj2yamlChris Bieneman2016-05-116-2/+48
| | | | | | | | Adding the initial files for adding MachO support to obj2yaml. Passing a MachO file will result in a new not_implemented error. I will be implementing obj2yaml and yaml2obj for MachO in parallel so that one can be used to test the other. llvm-svn: 269243
* Fixed msvc warningsSimon Pilgrim2016-05-111-0/+2
| | | | llvm-svn: 269242
* regenerate checksSanjay Patel2016-05-111-4/+13
| | | | llvm-svn: 269241
* [clang-tidy] Add missing dependency of libtooling to misc moduleEtienne Bergeron2016-05-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The new API for fixit is in libtooling and the library misc in clang-tidy didn't had the appropriate dependency. This commit was breaking some build bots: http://reviews.llvm.org/D19547 This commit tried (but failed) to fix it: http://reviews.llvm.org/D20180 To repro, you can make a build with these flags: ``` cmake -DBUILD_SHARED_LIBS=ON ``` Thanks rnk@ for helping figuring out. Reviewers: alexfh, rnk Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20182 llvm-svn: 269240
* MachineVerifier: Fix error reporting.Matthias Braun2016-05-111-4/+10
| | | | | | | Do not use getVRegDef() to print "the definition" of a vreg. If there are multiple or none the function will fail. llvm-svn: 269239
* cleanup: do not recompute size for preallocated bufferXinliang David Li2016-05-111-2/+5
| | | | llvm-svn: 269238
* cleanup: Enforce caller to set total size to avoid redundant size computeXinliang David Li2016-05-112-2/+6
| | | | llvm-svn: 269237
OpenPOWER on IntegriCloud