summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* SDAG: Add a helper to replace and remove a node during ISelJustin Bogner2016-05-112-7/+8
| | | | | | | | | It's very common to want to replace a node and then remove it since it's dead, especially as we port backends from the SDNode *Select API to the void Select one. This helper makes this sequence a bit less verbose. llvm-svn: 269236
* SDAG: Have SelectNodeTo replace uses if it CSE's instead of morphing a nodeJustin Bogner2016-05-112-9/+8
| | | | | | | | It's awkward to force callers of SelectNodeTo to figure out whether the node was morphed or CSE'd. Update uses here instead of requiring callers to (sometimes) do it. llvm-svn: 269235
* [VFS][Unittests] Make dir iteration tests depend only on contentBruno Cardoso Lopes2016-05-111-9/+16
| | | | | | | Do not rely on any specific order while comparing the results of directory iteration. llvm-svn: 269234
* [asan] Don't use libcorkscrew on Android L+.Evgeniy Stepanov2016-05-111-0/+5
| | | | | | | | | | | | | ASan runtime library used libcorkscrew from Android platform for stack unwinding. Since Android L, this is both unnecessary (the libgcc unwinder has been fixed) and impossible (the library is not there any more). Don't even try. This should have not effect on modern Android devices other than removing a message about failing to open the library with ASAN_OPTIONS=verbosity=1. llvm-svn: 269233
* [ThinLTO] Fix Windows debug failure in new iteratorTeresa Johnson2016-05-111-2/+13
| | | | | | | | | | | | This fixes a debug assert on Windows from the new iterator implementation added in r269059. The Windows std::vector iterator operator== checks in debug mode that the containers being iterated over are the same, which they may not be. Fixed by checking that we are iterating over the same container before comparing the container iterators. llvm-svn: 269232
* Preserve the FoundDecl when performing overload resolution for constructors.Richard Smith2016-05-1115-214/+251
| | | | | | | | | This is in preparation for C++ P0136R1, which switches the model for inheriting constructors over from synthesizing a constructor to finding base class constructors (via using shadow decls) when looking for derived class constructors. llvm-svn: 269231
* [CMake] Cache check results and avoid duplicate checksChris Bieneman2016-05-112-8/+9
| | | | | | This caches the result of builtin_check_c_compiler_flag, and removes a duplicate check for C99 flag support. llvm-svn: 269230
* [Clang-tidy] modernize-use-bool-literals: documentation style.Eugene Zelenko2016-05-113-6/+2
| | | | | | Fix readability-redundant-control-flow warnings in regression test. llvm-svn: 269229
* [analyzer] Fix crash in ObjCGenericsCheckerDevin Coughlin2016-05-112-0/+298
| | | | | | | | | | | | | | | Fix a crash in the generics checker where DynamicTypePropagation tries to get the superclass of a root class. This is a spot-fix for a deeper issue where the checker makes assumptions that may not hold about subtyping between the symbolically-tracked type of a value and the compile-time types of a cast on that value. I've added a TODO to address the underlying issue. rdar://problem/26086914 llvm-svn: 269227
* [AArch64] Improve getUsefulBitsForUse for narrow stores.Chad Rosier2016-05-112-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | For narrow stores (e.g., strb, srth) we know the upper bits of the register are unused/not useful. In some cases we can use this information to eliminate unnecessary instructions. For example, without this patch we generate (from the 2nd test case): ldr w8, [x0] and w8, w8, #0xfff0 bfxil w8, w2, #16, #4 strh w8, [x1] and after the patch the 'and' is removed: ldr w8, [x0] bfxil w8, w2, #16, #4 strh w8, [x1] ret During the lowering of the bitfield insert instruction the 'and' is eliminated because we know the upper 16-bits that are masked off are unused and the lower 4-bits that are masked off are overwritten by the insert itself. Therefore, the 'and' is unnecessary. Differential Revision: http://reviews.llvm.org/D20175 llvm-svn: 269226
* fix documentation comments; NFCSanjay Patel2016-05-111-41/+35
| | | | llvm-svn: 269225
* [tooling] Fix missing inline keyworkd, breaking build bot.Etienne Bergeron2016-05-111-5/+5
| | | | | | | | | | | | | | | | Summary: The missing keyword "inline" is causing some buildbot to fail. The symbol is not available. see: http://lab.llvm.org:8011/builders/clang-ppc64be-linux-multistage/builds/2281/ Reviewers: rnk Subscribers: cfe-commits, klimek Differential Revision: http://reviews.llvm.org/D20180 llvm-svn: 269224
* [sanitizer] Move *stat to the common interceptorsEvgeniy Stepanov2016-05-115-186/+54
| | | | | | | | | | | Adds *stat to the common interceptors. Removes the now-duplicate *stat interceptor from msan/tsan/esan. This adds *stat to asan, which previously did not intercept it. Patch by Qin Zhao. llvm-svn: 269223
* [ProfileData] Use SoftInstrProfErrors to count soft errors, NFCVedant Kumar2016-05-113-62/+115
| | | | | | Differential Revision: http://reviews.llvm.org/D20082 llvm-svn: 269222
* [X86][AVX512] Fixed VPERMILPD/VPERMILPS shuffle comments.Simon Pilgrim2016-05-113-14/+14
| | | | | | Fixed incorrect operands indices used to access src registers llvm-svn: 269221
* [MSVC] Implementation of __unaligned as a proper type qualifierAndrey Bokhanko2016-05-1123-55/+255
| | | | | | | | | | | This patch implements __unaligned (MS extension) as a proper type qualifier (before that, it was implemented as an ignored attribute). It also fixes PR27367 and PR27666. Differential Revision: http://reviews.llvm.org/D20103 llvm-svn: 269220
* Reapply r268608 Rong Xu2016-05-113-3/+6
| | | | | | | Re-enable the tests after IR instrumentation fix (r269146). Check-in on behalf of davidxl. llvm-svn: 269219
* Return a StringRef from getSection.Rafael Espindola2016-05-1110-19/+20
| | | | | | This is similar to how getName is handled. llvm-svn: 269218
* Fix build breakage in DebugInfoCodeviewZachary Turner2016-05-111-1/+1
| | | | llvm-svn: 269217
* Refactor CodeView type records to use common code.Zachary Turner2016-05-1111-728/+1458
| | | | | | | Differential Revision: http://reviews.llvm.org/D20138 Reviewed By: rnk llvm-svn: 269216
* SDAG: Minor cleanup in X86Justin Bogner2016-05-111-7/+6
| | | | | | | | Don't bother returning a result we don't use here. I've also renamed this from selectGather to tryGather to better indicate that it may not do anything. llvm-svn: 269215
* Relax -Wcalling-convention-cast when casting to the default convention (cdecl)Reid Kleckner2016-05-112-1/+18
| | | | llvm-svn: 269214
* [SCEVExpander] Fix a failed cast<> assertionSanjoy Das2016-05-112-43/+117
| | | | | | | | | SCEVExpander::replaceCongruentIVs assumes the backedge value of an SCEV-analysable PHI to always be an instruction, when this is not necessarily true. For now address this by bailing out of the optimization if the backedge value of the PHI is a non-Instruction. llvm-svn: 269213
* [SCEVExpander] Don't break SSA in replaceCongruentIVsSanjoy Das2016-05-112-2/+42
| | | | | | | | | | | | `SCEVExpander::replaceCongruentIVs` bypasses `hoistIVInc` if both the original and the isomorphic increments are PHI nodes. Doing this can break SSA if the isomorphic increment is not dominated by the original increment. Get rid of the bypass, and let `hoistIVInc` do the right thing. Fixes PR27232 (compile time crash/hang). llvm-svn: 269212
* [SCEV] Be more aggressive around proving no-wrapSanjoy Das2016-05-112-4/+81
| | | | | | | | | | | | | | | ... for AddRec's in loops for which SCEV is unable to compute a max tripcount. This is not a problem for "normal" loops[0] that don't have guards or assumes, but helps in cases where we have guards or assumes in the loop that can be used to constrain incoming values over the backedge. This partially fixes PR27691 (we still don't handle the NUW case). [0]: for "normal" loops, in the cases where we'd be able to prove no-wrap via isKnownPredicate, we'd also be able to compute a max tripcount. llvm-svn: 269211
* [clang-tidy] Refactoring of FixHintUtilsEtienne Bergeron2016-05-113-43/+26
| | | | | | | | | | | | | | Summary: Refactor some checkers to use the tooling re-writing API. see: http://reviews.llvm.org/D19941 Reviewers: klimek, alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19807 llvm-svn: 269210
* [X86][SSE] Avoid repeatedly calling MCInst::getNumOperands(). NFCI.Simon Pilgrim2016-05-111-49/+49
| | | | llvm-svn: 269209
* [clang-tidy] Add FixIt for swapping arguments in string-constructor-checker.Etienne Bergeron2016-05-112-6/+16
| | | | | | | | | | | | | | | | | | Summary: Arguments can be swapped using fixit when they are not in macros. This is the same implementation than SwappedArguments. Some code got lifted to be reused. Others checks are not safe to be fixed as they tend to be bugs or errors. It is better to let the user manually review them. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19547 llvm-svn: 269208
* AMDGPU: Split private memory testsJan Vesely2016-05-113-24/+57
| | | | | | | | | | Reenable R600 testing reviewer: arsenm Differential Revision: http://reviews.llvm.org/D20031 llvm-svn: 269207
* fix typos in comments; NFCSanjay Patel2016-05-111-41/+40
| | | | llvm-svn: 269206
* Generalize child process monitoring functionsPavel Labath2016-05-1123-165/+95
| | | | | | | | | | | | | | | | | | | | | | Summary: This replaces the C-style "void *" baton of the child process monitoring functions with a more C++-like API taking a std::function. The motivation for this was that it was very difficult to handle the ownership of the object passed into the callback function -- each caller ended up implementing his own way of doing it, some doing it better than others. With the new API, one can just pass a smart pointer into the callback and all of the lifetime management will be handled automatically. This has enabled me to simplify the rather complicated handshake in Host::RunShellCommand. I have left handling of MonitorDebugServerProcess (my original motivation for this change) to a separate commit to reduce the scope of this change. Reviewers: clayborg, zturner, emaste, krytarowski Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20106 llvm-svn: 269205
* [NFC] Remove some dead code:Filipe Cabecinhas2016-05-114-24/+0
| | | | | | | DbgInfoIntrinsic::StripCast() is dead since r79977 The only function that creates Comdat objects seems to be in Module, and always creates them using the default constructor. llvm-svn: 269204
* [WebAssembl] Implement enough of fast-isel to run the comparison tests.Dan Gohman2016-05-113-98/+391
| | | | llvm-svn: 269203
* Embed bitcode in object file (clang cc1 part)Steven Wu2016-05-1111-15/+251
| | | | | | | | | | | | | | | | | | | Summary: Teach clang to embed bitcode inside bitcode. When -fembed-bitcode cc1 option is used, clang will embed both the input bitcode and cc1 commandline into the bitcode in special sections before compiling to the object file. Using -fembed-bitcode-marker will only introduce a marker in both sections. Depends on D17390 Reviewers: rsmith Subscribers: yaron.keren, vsk, cfe-commits Differential Revision: http://reviews.llvm.org/D17392 llvm-svn: 269202
* Update clang support on recent HaikuReid Kleckner2016-05-115-41/+108
| | | | | | | | | | | | | | | | | | [ Copied from https://llvm.org/bugs/show_bug.cgi?id=26404 ] clang support on Haiku is lagging a bit, and missing on x86_64. This patch updates support for x86 and add support for x86_64. It should apply directly to trunk and it's harmless in the sense that it only affects Haiku. Reviewers: rnk, rsmith Patch by Jérôme Duval Differential Revision: http://reviews.llvm.org/D16797 llvm-svn: 269201
* [Hexagon] Avoid spurious failures in test/Driver/hexagon-toolchain-elf.cKrzysztof Parzyszek2016-05-111-4/+4
| | | | llvm-svn: 269200
* Use an emplace_back for consistency, NFCVedant Kumar2016-05-111-1/+1
| | | | llvm-svn: 269199
* [esan] EfficiencySanitizer shadow memoryDerek Bruening2016-05-115-0/+363
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Adds shadow memory mapping support common to all tools to the new Efficiencysanitizer ("esan") family of tools. This includes: + Shadow memory layout and mapping support for 64-bit Linux for any power-of-2 scale-down (1x, 2x, 4x, 8x, 16x, etc.) that ensures that shadow(shadow(address)) does not overlap shadow or application memory. + Mmap interception to ensure the application does not map on top of our shadow memory. + Init-time sanity checks for shadow regions. + A test of the mmap conflict mechanism. Reviewers: aizatsky, filcab Subscribers: filcab, kubabrecka, llvm-commits, vitalybuka, eugenis, kcc, zhaoqin Differential Revision: http://reviews.llvm.org/D19921 llvm-svn: 269198
* [BasicAA] Compare GEP indices based on value (Fix PR27418)Vedant Kumar2016-05-112-1/+10
| | | | | | | | | | | | Equivalent GEP indices with different types are treated as different indices altogether, leading to an incorrect AA result. Fix the issue by comparing indices based on their values. Thanks to Mikael Holmén for reporting the issue! Differential Revision: http://reviews.llvm.org/D19935 llvm-svn: 269197
* [mips][ias] Work around incorrect microMIPS relocation evaluation exposed by ↵Daniel Sanders2016-05-112-0/+25
| | | | | | | | | | | | | | | r268900 microMIPS has a special case that is not correctly implemented in LLVM. If we have a symbol 'foo' which is equivalent to '.text+0x10'. The value of an R_MICROMIPS_LO16 relocation using 'foo' is 'foo+0x11' and not 'foo+0x10'. The in-place addend should therefore be 0x11. Work around this by partially reverting the effect of r268900 by keeping the symbol when the STO_MIPS_MICROMIPS flag is set. This fixes SingleSource/Regression/C/PR640 for microMIPS. llvm-svn: 269196
* [include-fixer] Always ignore SFINAE contexts.Benjamin Kramer2016-05-111-0/+8
| | | | | | | This could lead to spurious includes being added for identifiers that are supposed to be not available. llvm-svn: 269195
* [include-fixer] Also output the location where we found an unknown identifier.Benjamin Kramer2016-05-111-4/+6
| | | | | | | For debugging only, makes it a bit easier when there are queries coming out of headers. llvm-svn: 269194
* [X86][AVX512] Regenerate intrinsics testSimon Pilgrim2016-05-112-83/+133
| | | | llvm-svn: 269193
* [Hexagon] Add a debug option to disable all backend optimizationsKrzysztof Parzyszek2016-05-111-1/+4
| | | | llvm-svn: 269192
* [Hexagon] Use offsets relative to FP+8 in .cfi_offset instructionsKrzysztof Parzyszek2016-05-112-5/+62
| | | | | | | | When generating .cfi_offset instructions, make sure that the offset is calculated with respect to the register used to define the CFA (which is currently always FP+8). llvm-svn: 269191
* NFC. Introduce Value::isPointerDereferenceableArtur Pilipenko2016-05-113-12/+34
| | | | | | | | | | Extract a part of isDereferenceableAndAlignedPointer functionality to Value: Reviewed By: hfinkel, sanjoy Differential Revision: http://reviews.llvm.org/D17611 llvm-svn: 269190
* Merge two unreachable cases.Rafael Espindola2016-05-111-2/+1
| | | | llvm-svn: 269189
* [tooling] FixItHint Tooling refactoringEtienne Bergeron2016-05-115-4/+341
| | | | | | | | | | | | | | Summary: This is the refactoring to lift some FixItHint into tooling. used by: http://reviews.llvm.org/D19807 Reviewers: klimek, alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19941 llvm-svn: 269188
* Xfail failing watchpoint tests on aarch64-linuxOmair Javaid2016-05-115-0/+6
| | | | | | | | Some watchpoint tests fail on aarch64-linux as it lacks support for intalling watchpoints which are not alligned at 8bytes boundary. Marking them as xfail for now. llvm-svn: 269187
* [X86] Regenerate shuffle testSimon Pilgrim2016-05-111-12/+36
| | | | llvm-svn: 269186
OpenPOWER on IntegriCloud