summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* 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
OpenPOWER on IntegriCloud