summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [clang] [test] Fix riscv-toolchain-extra to be less picky about pathsMichał Górny2020-01-142-6/+6
| | | | | | | Fix riscv-toolchain-extra tests to pass when CLANG_RESOURCE_DIR is set to another value than the default. Differential Revision: https://reviews.llvm.org/D72591
* [mlir] [VectorOps] fixed typo in verifier of slice opAart Bik2020-01-131-1/+1
| | | | | | | | | | | | Reviewers: nicolasvasilache, andydavis1, rriddle Reviewed By: nicolasvasilache, rriddle Subscribers: merge_guards_bot, mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72664
* [lldb/Utility] Add std::move to make placate clang 3.8Jonas Devlieghere2020-01-131-2/+2
| | | | | This fixes an error thrown by clang 3.8 that no viable conversion from returned value to the function return type.
* try to fix InterfaceStubs/lambda.cpp on Windows after bd8c8827d96f0Nico Weber2020-01-131-1/+2
|
* [LanguageRuntime] Retire an unused member function. NFCI.Davide Italiano2020-01-134-42/+0
|
* [llvm-exegesis] Initialize const bitvector memberJonas Devlieghere2020-01-131-1/+1
| | | | | | This causes an error with older versions of clang: constructor for 'llvm::exegesis::InstructionsCache' must explicitly initialize the const member 'BVC'
* [GlobalISel] Change representation of shuffle masks in MachineOperand.Eli Friedman2020-01-1312-61/+38
| | | | | | | | | | | | We're planning to remove the shufflemask operand from ShuffleVectorInst (D72467); fix GlobalISel so it doesn't depend on that Constant. The change to prelegalizercombiner-shuffle-vector.mir happens because the input contains a literal "-1" in the mask (so the parser/verifier weren't really handling it properly). We now treat it as equivalent to "undef" in all contexts. Differential Revision: https://reviews.llvm.org/D72663
* Re-enable testing of .s tests under test/CodeGen/X86.Richard Smith2020-01-132-9/+1
| | | | | | | | These were temporarily disabled in 2013 and we apparently forgot to ever turn them back on again. Fix spelling of flag to llvm-mc in recently-added test that wasn't actually being run due to this.
* [mlir] NFC: Remove unused variable.River Riddle2020-01-131-1/+1
|
* [mlir] Add support for attaching a visibility to symbols.River Riddle2020-01-135-3/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The visibility defines the structural reachability of the symbol within the IR. Symbols can define one of three visibilities: * Public The symbol \may be accessed from outside of the visible IR. We cannot assume that we can observe all of the uses of this symbol. * Private The symbol may only be referenced from within the operations in the current symbol table, via SymbolRefAttr. * Nested The symbol may be referenced by operations in symbol tables above the current symbol table, as long as each symbol table parent also defines a non-private symbol. This allows or referencing the symbol from outside of the defining symbol table, while retaining the ability for the compiler to see all uses. These properties help to reason about the properties of a symbol, and will be used in a follow up to implement a dce pass on dead symbols. A few examples of what this would look like in the IR are shown below: module @public_module { // This function can be accessed by 'live.user' func @nested_function() attributes { sym_visibility = "nested" } // This function cannot be accessed outside of 'public_module' func @private_function() attributes { sym_visibility = "private" } } // This function can only be accessed from within this module. func @private_function() attributes { sym_visibility = "private" } // This function may be referenced externally. func @public_function() "live.user"() {uses = [@public_module::@nested_function, @private_function, @public_function]} : () -> () Depends On D72043 Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D72044
* [DebugInfo] Add another level to DebugInfoKind called ConstructorAmy Huang2020-01-1311-37/+43
| | | | | | | | | The option will limit debug info by only emitting complete class type information when its constructor is emitted. This patch changes comparisons with LimitedDebugInfo to use the new level instead. Differential Revision: https://reviews.llvm.org/D72427
* [mlir] Update the CallGraph for nested symbol references, and simplify ↵River Riddle2020-01-137-100/+82
| | | | | | | | | | | | | CallableOpInterface Summary: This enables tracking calls that cross symbol table boundaries. It also simplifies some of the implementation details of CallableOpInterface, i.e. there can only be one region within the callable operation. Depends On D72042 Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D72043
* [mlir] Update the use-list algorithms in SymbolTable to support nested ↵River Riddle2020-01-135-157/+529
| | | | | | | | | | references. Summary: This updates the use list algorithms to support querying from a specific symbol, allowing for the collection and detection of nested references. This works by walking the parent "symbol scopes" and applying the existing algorithm at each level. Reviewed By: jpienaar Differential Revision: https://reviews.llvm.org/D72042
* [lldb-server] Prefer target_include_directoriesAlex Langford2020-01-131-2/+1
| | | | | | | In the documentation of `include_directories`, it notes that `target_include_directories` is preferred because it affects specific targets intead of propagating include search paths to the entire project.
* [PGO][CHR] Guard against 0-to-0 branch weight and avoid division by zero crash.Hiroshi Yamauchi2020-01-132-0/+30
| | | | | | | | | | | | Summary: This fixes a crash in internal builds under SamplePGO. Reviewers: davidxl Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72653
* [clang][IFS][test] Fixing mangled name of a test for Darwin.Puyan Lotfi2020-01-131-1/+1
| | | | | | | Darwin adds an extra '_' before every C/global function mangled name and because of this, this test was breaking on Darwin. This is a fix for commit: https://reviews.llvm.org/D71301
* Revert "[DWARF5][DebugInfo]: Added support for DebugInfo generation for auto ↵Amy Huang2020-01-132-78/+0
| | | | | | | return type for C++ member functions." This reverts commit c958639098a8702b831952b1a1a677ae19190a55, which causes a crash. See https://reviews.llvm.org/D70524 for details.
* [mlir] Remove unnecessary assert for single region.River Riddle2020-01-131-2/+0
| | | | This was left over debugging.
* PR44514: Fix recovery from noexcept with non-convertible expressionsErich Keane2020-01-132-2/+15
| | | | | | | | | | | | We currently treat noexcept(not-convertible-to-bool) as 'none', which results in the typeloc info being a different size, and causing an assert later on in the process. In order to make recovery less destructive, replace this with noexcept(false) and a constructed 'false' expression. Bug Report: https://bugs.llvm.org/show_bug.cgi?id=44514 Differential Revision: https://reviews.llvm.org/D72621
* [ThinLTO/WPD] Fix index-based WPD for alias vtablesTeresa Johnson2020-01-133-1/+74
| | | | | | | | | | | | | | | | | Summary: A recent fix in D69452 fixed index based WPD in the presence of available_externally vtables. It added a cast of the vtable def summary to a GlobalVarSummary. However, in some cases one def may be an alias, in which case we need to get the base object before casting, otherwise we will crash. Reviewers: evgeny777, steven_wu, aganea Subscribers: mehdi_amini, inglorion, hiraditya, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71040
* [ItaniumCXXABI] Make tls wrappers properly comdatMartin Storsjö2020-01-135-10/+14
| | | | | | | | | | | | Just marking a symbol as weak_odr/linkonce_odr isn't enough for actually tolerating multiple copies of it at linking on windows, it has to be made a proper comdat; make it comdat for all platforms for consistency. This should hopefully fix https://bugzilla.mozilla.org/show_bug.cgi?id=1566288. Differential Revision: https://reviews.llvm.org/D71572
* [InstCombine] add FMF to tests for more coverage; NFCSanjay Patel2020-01-131-6/+6
|
* Implement VectorType conditional operator GNU extension.Erich Keane2020-01-1310-51/+621
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC supports the conditional operator on VectorTypes that acts as a 'select' in C++ mode. This patch implements the support. Types are converted as closely to GCC's behavior as possible, though in a few places consistency with our existing vector type support was preferred. Note that this implementation is different from the OpenCL version in a number of ways, so it unfortunately required a different implementation. First, the SEMA rules and promotion rules are significantly different. Secondly, GCC implements COND[i] != 0 ? LHS[i] : RHS[i] (where i is in the range 0- VectorSize, for each element). In OpenCL, the condition is COND[i] < 0 ? LHS[i]: RHS[i]. In the process of implementing this, it was also required to make the expression COND ? LHS : RHS type dependent if COND is type dependent, since the type is now dependent on the condition. For example: T ? 1 : 2; Is not typically type dependent, since the result can be deduced from the operands. HOWEVER, if T is a VectorType now, it could change this to a 'select' (basically a swizzle with a non-constant mask) with the 1 and 2 being promoted to vectors themselves. While this is a change, it is NOT a standards incompatible change. Based on my (and D. Gregor's, at the time of writing the code) reading of the standard, the expression is supposed to be type dependent if ANY sub-expression is type dependent. Differential Revision: https://reviews.llvm.org/D71463
* [mlir] Change the syntax of AffineMapAttr and IntegerSetAttr to avoid ↵River Riddle2020-01-1378-1519/+1592
| | | | | | | | | | conflicts with function types. Summary: The current syntax for AffineMapAttr and IntegerSetAttr conflict with function types, making it currently impossible to round-trip function types(and e.g. FuncOp) in the IR. This revision changes the syntax for the attributes by wrapping them in a keyword. AffineMapAttr is wrapped with `affine_map<>` and IntegerSetAttr is wrapped with `affine_set<>`. Reviewed By: nicolasvasilache, ftynse Differential Revision: https://reviews.llvm.org/D72429
* [LegalizeIntegerTypes][X86] Add support for expanding input of ↵Craig Topper2020-01-132-6/+436
| | | | | | | | STRICT_SINT_TO_FP/STRICT_UINT_TO_FP into a libcall. Needed to support i128->fp128 on 32-bit X86. Add full set of strict sint_to_fp/uint_to_fp conversion tests for fp128.
* [lldb] Revert ddf044290ede for TestProcessAPI.pyRaphael Isemann2020-01-131-1/+0
| | | | | It seems ddf044290ede7d7fd47f4f673e3e628f551a8aac caused the test to time out on the Windows bot, but it's unclear to me why.
* [clang][IFS] Prevent Clang-IFS from Leaking symbols from inside a block.Puyan Lotfi2020-01-133-0/+23
| | | | | | | | | | | | Built libdispatch with clang interface stubs. Ran into some block related issues. Basically VarDecl symbols can leak out because I wasn't checking the case where a VarDecl is contained inside a BlockDecl (versus a method or function). This patch checks that a VarDecl is not a child decl of a BlockDecl. This patch also does something very similar for c++ lambdas as well. Differential Revision: https://reviews.llvm.org/D71301
* [NFC][clang][IFS] Adding braces to if-statement as prep for D71301.Puyan Lotfi2020-01-131-1/+2
| | | | Just trying to make https://reviews.llvm.org/D71301 look cleaner.
* Fix a test case by adding -fno-delayed-template-parsing.Aaron Ballman2020-01-131-1/+1
|
* [InstCombine] add tests for select --> copysign; NFCSanjay Patel2020-01-131-0/+108
| | | | | This is testing for another (possibly final) transform suggested in: https://bugs.llvm.org/show_bug.cgi?id=44153
* [Dsymutil][Debuginfo][NFC] #3 Refactor dsymutil to separate DWARF optimizing ↵Alexey Lapshin2020-01-136-54/+215
| | | | | | | | | | | | | | | | | | | | | | | | part. Summary: This is the next portion of patches for dsymutil. Create DwarfEmitter interface to generate all debug info tables. Put DwarfEmitter into DwarfLinker library and make tools/dsymutil/DwarfStreamer to be child of DwarfEmitter. It passes check-all testing. MD5 checksum for clang .dSYM bundle matches for the dsymutil with/without that patch. Reviewers: JDevlieghere, friss, dblaikie, aprantl Reviewed By: JDevlieghere Subscribers: merge_guards_bot, hiraditya, thegameg, probinson, llvm-commits Tags: #llvm, #debug-info Differential Revision: https://reviews.llvm.org/D72476
* [LTO] Constify lto::Config reference passed to backends (NFC)Teresa Johnson2020-01-134-23/+23
| | | | | | | | The lto::Config object saved on the global LTO object should not be updated by any of the LTO backends. Otherwise we could run into interference between threads utilizing it. Motivated by some proposed changes that would have caused it to get modified in the ThinLTO backends.
* Rework be15dfa88fb1 such that it works with GlobalISel which doesn't use EVTDaniel Sanders2020-01-132-3/+21
| | | | | | | | | | | | | | | | | | | | | Summary: be15dfa88fb1 broke GlobalISel's usage of getSetCCInverse() which currently appears to be limited to our out-of-tree backend. GlobalISel doesn't use EVT's and isn't able to derive them from the information it has as it doesn't distinguish between integer and floating point types (that distinction is made by operations rather than values). Bring back the bool version of getSetCCInverse() in a way that doesn't break the intent of be15dfa88fb1 but also allows GlobalISel to continue using it. Reviewers: spatel, bogner, arichardson Reviewed By: arichardson Subscribers: rovka, hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72309
* [Clang] Always set -z now linker option on FuchsiaPetr Hosek2020-01-133-2/+5
| | | | | | This should be the default on Fuchsia. Differential Revision: https://reviews.llvm.org/D70576
* [lldb-server] Remove dead CMake codeAlex Langford2020-01-131-24/+0
| | | | | | No files in lldb-server are including a header from a plugin without the whole path to the header relative to the lldb source directory. There is no need to include the specific directories as a result.
* [clangd] Include expression in DecltypeTypeLoc sourcerange while building ↵Kadir Cetinkaya2020-01-132-0/+19
| | | | | | | | | | | | | | | | | | | | | | | SelectionTree Summary: Currently AST only contains the location for `decltype` keyword, therefore we were skipping expressions inside decltype while building selection tree. This patch extends source range in such cases to contain the expression as well. A proper fix would require changes to Sema and DecltypeTypeLoc to contain these location information. Fixes https://github.com/clangd/clangd/issues/250. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72594
* [clangd] Render header of hover card as a headingKadir Cetinkaya2020-01-135-1/+48
| | | | | | | | | | Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72625
* [gn build] (manually) port b4a99a061f51Nico Weber2020-01-131-0/+1
|
* Revert "[ThinLTO] Add additional ThinLTO pipeline testing with new PM"Teresa Johnson2020-01-138-1254/+0
| | | | | | | | | | | This reverts commit 2af97be8027a0823b88d4b6a07fc5eedb440bc1f. After attempting to fix bot failures from matching issues (mostly due to inconsistent printing of "llvm::" prefixes on objects, and AnalysisManager objects being printed differntly, I am now seeing some differences I don't understand (real differences in the passes being printed). Giving up at this point to allow the bots to recover. Will revisit later.
* Add a couple of missed wildcards in debug-pass-manager output checkingTeresa Johnson2020-01-132-2/+2
| | | | | | | Along with the previous fix for bot failures from 2af97be8027a0823b88d4b6a07fc5eedb440bc1f, need to add a wildcard in a couple of places where my local output did not print "llvm::" but the bot is.
* [X86][Disassembler] Fix a bug when disassembling an empty stringFangrui Song2020-01-132-1/+7
| | | | | | | | | | | | | readPrefixes() assumes insn->bytes is non-empty. The code path is not exercised in llvm-mc because llvm-mc does not feed empty input to MCDisassembler::getInstruction(). This bug is uncovered by a5994c789a2982a770254ae1607b5b4cb641f73c. An empty string did not crash before because the deleted regionReader() allowed UINT64_C(-1) as insn->readerCursor. Bytes.size() <= Address -> R->Base 0 <= UINT64_C(-1) - UINT32_C(-1)
* [llvm][MIRVRegNamerUtils] Adding hashing on FrameIndex MachineOperands.Puyan Lotfi2020-01-132-1/+25
| | | | | | | | | | | | This patch makes it so that cases where multiple instructions that differ only in their FrameIndex MachineOperand values no longer collide. For instance: %1:_(p0) = G_FRAME_INDEX %stack.0 %2:_(p0) = G_FRAME_INDEX %stack.1 Prior to this patch these instructions would collide together. Differential Revision: https://reviews.llvm.org/D71583
* Hopefully last fix for bot failuresTeresa Johnson2020-01-135-137/+137
| | | | | | | | | Hopefully final bot fix for last few failures from 2af97be8027a0823b88d4b6a07fc5eedb440bc1f. Looks like sometimes the "llvm::" preceeding objects get printed in the debug pass manager output and sometimes they don't. Replace with wildcard matching.
* Fix readability-identifier-naming missing member variablesNathan James2020-01-132-6/+163
| | | | | Fixes PR41122 (missing fixes for member variables in a destructor) and PR29005 (does not rename class members in all locations).
* Unbreak the mlir build after 202ab273e6eca134b69882f100c666fcd3affbcfBenjamin Kramer2020-01-132-2/+2
|
* Try number 2 for fixing bot failuresTeresa Johnson2020-01-135-22/+32
| | | | | | | | Additional fixes for bot failures from 2af97be8027a0823b88d4b6a07fc5eedb440bc1f. Remove more exact matching on AnalyisManagers, as they can vary. Also allow different orders between LoopAnalysis and BranchProbabilityAnalysis as that can vary due to both being accessed in the parameter list of a call.
* AMDGPU/GlobalISel: Select llvm.amdgcn.ds.ordered.{add|swap}Matt Arsenault2020-01-135-0/+99
|
* [SelectionDAG] ComputeNumSignBits add getValidMaximumShiftAmountConstant() ↵Simon Pilgrim2020-01-132-24/+40
| | | | | | for ISD::SHL support Allows us to handle non-uniform SHL shifts to determine the minimum number of sign bits remaining (based off the maximum shift amount value)
* AMDGPU/GlobalISel: Set insert point after waterfall loopMatt Arsenault2020-01-131-2/+3
| | | | | | | | | The current users of the waterfall loop utility functions do not make use of the restored original insert point. The insertion is either done, or they set the insert point somewhere else. A future change will want to insert instructions after the waterfall loop, but figuring out the point after the loop is more difficult than ensuring the insert point is there after the loop.
* AMDGPU/GlobalISel: Add some baseline tests for vector extractMatt Arsenault2020-01-131-0/+468
| | | | | A future change will try to fold constant offsets into the loop which these will stress.
OpenPOWER on IntegriCloud