- Apr 28, 2020
-
-
Pavel Labath authored
The problem caught by clang-tidy and reported by Tobias Bosch.
-
Pavel Labath authored
to make the code conform to llvm style better: - avoid use of auto where the type is not obivous - avoid StringRef::data where it is not needed No functional change intended.
-
Rainer Orth authored
When I tried Solaris builds with `-DBUILD_SHARED_LIBS=ON`, some commands failed to link: [ 94%] Linking CXX executable ../../../../bin/f18 Undefined first referenced symbol in file Fortran::common::IntrinsicTypeDefaultKinds::set_sizeIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_subscriptIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::EnumIndexToString[abi:cxx11](int, char const*) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_defaultIntegerKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::IntrinsicTypeDefaultKinds() CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) Fortran::common::IntrinsicTypeDefaultKinds::set_defaultRealKind(int) CMakeFiles/f18.dir/f18.cpp.o (symbol belongs to implicit dependency /var/llvm/local-amd64-release-shared-gcc8-make/lib/libFortranCommon.so.11git) ld: fatal: symbol referencing errors This patch fixes this by adding explicit dependencies on `libFortranCommon` to the affected commands. Tested on `amd64-pc-solaris2.11`, `sparcv9-sun-solaris2.11`, and `x86-64-pc-linux-gnu`. Differential Revision: https://reviews.llvm.org/D78761
-
KAWASHIMA Takahiro authored
Work around PR45673 until the test code is fixed.
-
Sander de Smalen authored
This patch adds builtins for: - svmad, svmla, svmls, svmsb svnmad, svnmla, svnmls, svnmsb svmla_lane, svmls_lane These builtins come in several flavours: - Merge into first source vector (`_m`) - False lanes are undef (`_x`) - False lanes are zeroed (`_z`) And can also have `_n` to indicate the last operand is a scalar. For example: svint32_t svmla[_n_s32]_z(svbool_t pg, svint32_t op1, svint32_t op2, int32_t op3) Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D78960
-
Chen Zheng authored
-
Ng Zhi An authored
getTargetStreamer() might return null (e.g. when running inlined-strings.ll test), downcasting to a reference will be wrong. This is detectable with -fsanitize=null. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D78686
-
Chen Zheng authored
-
Alex Zinenko authored
As we start defining more complex Ops, we increasingly see the need for Ops-with-regions to be able to construct Ops within their regions in their ::build methods. However, these methods only have access to Builder, and not OpBuilder. Creating a local instance of OpBuilder inside ::build and using it fails to trigger the operation creation hooks in derived builders (e.g., ConversionPatternRewriter). In this case, we risk breaking the logic of the derived builder. At the same time, OpBuilder::create, which is by far the largest user of ::build already passes "this" as the first argument, so an OpBuilder instance is already available. Update all ::build methods in all Ops in MLIR and Flang to take "OpBuilder &" instead of "Builder *". Note the change from pointer and to reference to comply with the common style in MLIR, this also ensures all other users must change their ::build methods. Differential Revision: https://reviews.llvm.org/D78713
-
Ehsan Toosi authored
We have provided a generic buffer assignment transformation ported from TensorFlow. This generic transformation pass automatically analyzes the values and their aliases (also in other blocks) and returns the valid positions for Alloc and Dealloc operations. To find these positions, the algorithm uses the block Dominator and Post-Dominator analyses. In our proposed algorithm, we have considered aliasing, liveness, nested regions, branches, conditional branches, critical edges, and independency to custom block terminators. This implementation doesn't support block loops. However, we have considered this in our design. For this purpose, it is only required to have a loop analysis to insert Alloc and Dealloc operations outside of these loops in some special cases. Differential Revision: https://reviews.llvm.org/D78484
-
Hans Wennborg authored
Revert f8990feb "[libclang] Install both libclang.a and libclang.so when LIBCLANG_BUILD_STATIC=ON" This broke builds configured with $ cmake -GNinja -DCMAKE_BUILD_TYPE=Release '-DLLVM_ENABLE_PROJECTS=clang' '-DLLVM_TARGETS_TO_BUILD=X86' -DLLVM_ENABLE_PIC=OFF ../llvm CMake Error at /b/s/w/ir/cache/builder/src/third_party/llvm/clang/tools/libclang/CMakeLists.txt:123 (target_compile_definitions): target_compile_definitions called with non-compilable target type This reverts commit f8990feb.
-
Gabor Marton authored
Summary: Currently we map function summaries to names (i.e. strings). We can associate more summaries with different signatures to one name, this way we support overloading. During a call event we check whether the signature of the summary matches the signature of the callee and we apply the summary only in that case. In this patch we change this mapping to associate a summary to a FunctionDecl. We do lookup operations when the summary map is initialized. We lookup the given name and we match the signature of the given summary against the lookup results. If the summary matches the FunctionDecl (got from the lookup result) then we add that to the summary map. During a call event we compare FunctionDecl pointers. Advantages of this new refactor: - Cleaner mapping and structure for the checker. - Possibly way more efficient handling of call events. - A summary is added only if that is relevant for the given TU. - We can get the concrete FunctionDecl by the time when we create the summary, this opens up possibilities of further sanity checks regarding the summary cases and argument constraints. - Opens up to future work when we'd like to store summaries from IR to a FunctionDecl (or from the Attributor results of the given FunctionDecl). Note, we cannot support old C functions without prototypes. Reviewers: NoQ, Szelethus, balazske, jdoerfert, sstefan1, uenoku Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, dkrupp, gamesh411, Charusso, steakhal, uenoku, ASDenysPetrov, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77641
-
Sam Parker authored
There are several different types of cost that TTI tries to provide explicit information for: throughput, latency, code size along with a vague 'intersection of code-size cost and execution cost'. The vectorizer is a keen user of RecipThroughput and there's at least 'getInstructionThroughput' and 'getArithmeticInstrCost' designed to help with this cost. The latency cost has a single use and a single implementation. The intersection cost appears to cover most of the rest of the API. getUserCost is explicitly called from within TTI when the user has been explicit in wanting the code size (also only one use) as well as a few passes which are concerned with a mixture of size and/or a relative cost. In many cases these costs are closely related, such as when multiple instructions are required, but one evident diverging cost in this function is for div/rem. This patch adds an argument so that the cost required is explicit, so that we can make the important distinction when necessary. Differential Revision: https://reviews.llvm.org/D78635
-
serge-sans-paille authored
As a side effect, this tests (and fix a bug) in the compiler extension handling of components. Differential Revision: https://reviews.llvm.org/D78358
-
Jonas Paulsson authored
Remove bad kill flags fom load-and-test.mir as discovered by https://reviews.llvm.org/D78586: "[MachineVerifier] Add more checks for registers in live-in lists". Review: Ulrich Weigand
-
Kazushi (Jam) Marukawa authored
Summary: Changing all mnemonic to match assembly instructions to simplify mnemonic naming rules. This time update all branch instructions. This also change to use %s10 register consistently. Differential Revision: https://reviews.llvm.org/D78889
-
Kazushi (Jam) Marukawa authored
Summary: Add simm7fp/mimmfp to represent floating point immediate values. Also clean multiclasses to define floating point arithmetic instructions to handle simm7fp/mimmfp operands. Also add several regression tests for new operands. Differential Revision: https://reviews.llvm.org/D78887
-
Chen Zheng authored
Currently, on PowerPC target, it uses function scope UnsafeFPMath option to drive Machine Combiner pass. This is not accurate in two ways: 1: the scope is not accurate. Machine Combiner pass only requires instruction-level flags instead of the function scope. 2: the float point flag is not accurate. Machine Combiner pass only requires float point flags reassoc and nsz. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D78183
-
Haojian Wu authored
-
Craig Topper authored
These lines were just changed from using CallBase::getCalledValue to getCallledOperand. Go aheand change them to isInlineAsm.
-
Craig Topper authored
This method has been commented as deprecated for a while. Remove it and replace all uses with the equivalent getCalledOperand(). I also made a few cleanups in here. For example, to removes use of getElementType on a pointer when we could just use getFunctionType from the call. Differential Revision: https://reviews.llvm.org/D78882
-
Tony authored
- Rename DW_OP_LLVM_offset_constu to DW_OP_LLVM_offset_uconst to matches DW_OP_plus_uconst. - Correct DW_OP_LLVM_call_ref to be DW_OP_call_ref. - Move proposed changes to a separate section to clarify that the introduction section is not part of the changes. - Fix formatting typos and add missing reference. - Clarify why DW_OP_LLVM_offset et al do not wrap on overflow. - Correct syntax of augmentation string. Differential Revision: https://reviews.llvm.org/D70523
-
Uday Bondhugula authored
Introduce op trait `PolyhedralScope` for ops to define a new scope for polyhedral optimization / affine dialect purposes, thus generalizing such scopes beyond FuncOp. Ops to which this trait is attached will define a new scope for the consideration of SSA values as valid symbols for the purposes of polyhedral analysis and optimization. Update methods that check for dim/symbol validity to work based on this trait. Differential Revision: https://reviews.llvm.org/D78863
-
Mircea Trofin authored
-
Mircea Trofin authored
Summary: getProfileCount requires the parameter be a valid CallBase, and its uses reflect that. Reviewers: dblaikie, craig.topper, wmi Subscribers: eraman, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78940
-
Nico Weber authored
This reverts commit 825f583c. This reverts commit 45417ecb. cd84bfb8 was reverted in be884b79
-
Kang Zhang authored
Summary: In the ppc-expand-isel pass, we use stepForward() to update the liveins, this function is not recommended, because it needs the accurate kill info. This patch uses the function computeAndAddLiveIns() to update the liveins, it's the recommended method and can fix the liveins bug for ppc-expand-isel pass.. Reviewed By: efriedma, lkail Differential Revision: https://reviews.llvm.org/D78657
-
Saleem Abdulrasool authored
This reverts commit cd84bfb8. Although this passed the CI in phabricator, some of the bots are missing python3 packages, revert it temporarily.
-
Nico Weber authored
-
Nico Weber authored
-
Mehdi Amini authored
This makes it possible for the client to control where the pass timings will be printed. Differential Revision: https://reviews.llvm.org/D78891
-
Saleem Abdulrasool authored
This is primarily motivated by the desire to move from Python2 to Python3. `PYTHON_EXECUTABLE` is ambiguous. This explicitly identifies the python interpreter in use. Since the LLVM build seems to be able to completed successfully with python3, use that across the build. The old path aliases `PYTHON_EXECUTABLE` to be treated as Python3.
-
Alexander Shaposhnikov authored
Some compilers are confused when the same name is used in different contexts. Rename the field Section to unbreak the build. (Caught by the buildbot http://lab.llvm.org:8011/builders/clang-with-thin-lto-ubuntu/builds/22374)
-
Alexander Shaposhnikov authored
Fix handling of relocations with r_extern == 0. If r_extern == 0 then r_symbolnum is an index of a section rather than a symbol index. Patch by Seiya Nuta and Alexander Shaposhnikov. Test plan: make check-all Differential revision: https://reviews.llvm.org/D78946
-
Eric Schweitz authored
Summary: Reviewers: DavidTruby, sscalpone, jeanPerier Subscribers: mgorny, aartbik, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78835
-
Nick Desaulniers authored
Summary: While looking into issues with IfConverter, I noticed that X86InstrInfo::isUnpredicatedTerminator matched its overriden implementation in TargetInstrInfo::isUnpredicatedTerminator. Reviewers: craig.topper, hfinkel, MaskRay, echristo Reviewed By: MaskRay, echristo Subscribers: hiraditya, llvm-commits, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D62749
-
River Riddle authored
This fixes an iteration invalidation bug when the map grows beyond capacity and the iterator for the location to translate becomes invalid.
-
Jonas Devlieghere authored
We were passing the AppleObjCSection instead of the AddrSection. Maybe the API changed and this remained unnoticed because the types are the same, or maybe it's just a typo.
-
Jonas Devlieghere authored
Print the DW_AT_ranges offset as part of the verifier error, like we do for the DW_AT_stmt_list offset.
-
Christopher Tetreault authored
Summary: * Upgrade some usages of VectorType to use ScalableVectorType Reviewers: efriedma, david-arm, fpetrogalli, kmclaughlin Reviewed By: efriedma Subscribers: tschuett, rkruppe, psnobl, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D78842
-