summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* [ELF] Change common diagnostics to report both object file location and ↵zibi/warnings_from_nanosleepFangrui Song2021-10-289-43/+58
| | | | | | | | | | | | | | | | | | | | | | | | source file location Many diagnostics use `getErrorPlace` or `getErrorLocation` to report a location. In the presence of line table debug information, `getErrorPlace` uses a source file location and ignores the object file location. However, the object file location is sometimes more useful. This patch changes "undefined symbol" and "out of range" diagnostics to report both object/source file locations. Other diagnostics can use similar format if needed. The key idea is to let `InputSectionBase::getLocation` report the object file location and use `getSrcMsg` for source file/line information. `getSrcMsg` doesn't leverage `STT_FILE` information yet, but I think the temporary lack of the functionality is ok. For the ARM "branch and link relocation" diagnostic, I arbitrarily place the source file location at the end of the line. The diagnostic is not very common so its formatting doesn't need to be pretty. Differential Revision: https://reviews.llvm.org/D112518
* [IR] Fix a warningKazu Hirata2021-10-281-1/+1
| | | | | | | | | This patch fixes: mlir/lib/IR/BuiltinAttributes.cpp:876:39: error: unused function 'isComplexOfIntType' [-Werror,-Wunused-function] in a release build.
* Regen some autogen tests to account for format changePhilip Reames2021-10-283-8/+8
|
* [compiler-rt] update detect_write_exec option for apple devices.David CARLIER2021-10-286-9/+22
| | | | | | Reviewed By: yln, vitalybuka Differential Revision: https://reviews.llvm.org/D111390
* Autogen a test for ease of updatePhilip Reames2021-10-281-3/+11
|
* Add support for Bazel builds on Windows with `clang-cl`.Chandler Carruth2021-10-286-18/+53
| | | | | | | | | | | | | | Adds basic `--config=clang-cl` to set up the basic options needed, and then fix a number of issues that surface in Windows builds for me. With these fixes, `//llvm/...` builds cleanly. One unittest still fails, but its just due to running out of stack space due to creating a large number of short-lived stack variables. The test should probably be decomposed into a set of tests (`LegalizerInfoTest::RuleSets`), but that seemed like too invasive of a change here and with everything building cleanly this isn't disrupting me experimenting with Windows builds. Some parts of `//clang/...` builds, but that will require more work.
* [mlir][sparse] move conversion test back to original CHECK testingAart Bik2021-10-281-101/+109
| | | | | | | | | | | | | Rationale: The silent exit(1) gives little clues on where the error occurs on failure and may even be confusing at first. The CHECK testing of all computed values and indices may be a little bit more elaborate, but it directly pinpoints where errors happen if they occur. This style is also consistent with the other tests, which I actually prefer. Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D112688
* [libc][NFC] Move utils/CPP to src/__support/CPP.Siva Chandra Reddy2021-10-2865-88/+89
| | | | | | | | | | The idea is to move all pieces related to the actual libc sources to the "src" directory. This allows downstream users to ship and build just the "src" directory. Reviewed By: michaelrj Differential Revision: https://reviews.llvm.org/D112653
* [clangd] SelectionTree should prefer lexical declcontextKadir Cetinkaya2021-10-283-3/+18
| | | | | | | This is important especially for code that tries to traverse scopes as written in code, which is the contract SelectionTree tries to satisfy. Differential Revision: https://reviews.llvm.org/D112712
* [libc++][ci] Update to Clang 13.Mark de Wever2021-10-284-12/+12
| | | | | | | | | | Per our support plan we should now support Clang 12 and 13. Adjust the documentation and the CI runners. The change indirectly moves the main CI runners to use the Clang 14 nightly builds. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D112360
* [CGProfile] Don't emit call graph profile edges with zero weightLeonard Grey2021-10-282-2/+6
| | | | | | | | With D112160 and D112164, on a Chrome Mac build this reduces the total size of CGProfile sections by 78% (around 25% eliminated entirely) and total size of object files by 0.14%. Differential Revision: https://reviews.llvm.org/D112655
* [OpenMP] Initial parsing/sema for the 'omp loop' constructMike Rice2021-10-2827-8/+588
| | | | | | | Adds basic parsing/sema/serialization support for the #pragma omp loop directive. Differential Revision: https://reviews.llvm.org/D112499
* Revert "Reland "[ARM] __cxa_end_cleanup should be called instead of ↵Daniel Kiss2021-10-289-158/+106
| | | | | | _UnwindResume."" This reverts commit b6420e575f3bbb6b6df848c0284d6b60eeb07350.
* Reland "[ARM] __cxa_end_cleanup should be called instead of _UnwindResume."Daniel Kiss2021-10-289-106/+158
| | | | | | | | | | | | | | | | | | This is relanding commit da1d1a08694bbfe0ea7a23ea094612436e8a2dd0 . This patch additionally addresses failures found in buildbots & post review comments. ARM EHABI[1] specifies the __cxa_end_cleanup to be called after cleanup. It will call the UnwindResume. __cxa_begin_cleanup will be called from libcxxabi while __cxa_end_cleanup is never called. This will trigger a termination when a foreign exception is processed while UnwindResume is called because the global state will be wrong due to the missing __cxa_end_cleanup call. Additional test here: D109856 [1] https://github.com/ARM-software/abi-aa/blob/main/ehabi32/ehabi32.rst#941compiler-helper-functions Reviewed By: logan Differential Revision: https://reviews.llvm.org/D111703
* [InstCombine] Extend canonicalizeClampLike to handle truncated inputsDavid Green2021-10-282-32/+115
| | | | | | | | | | | | | | | | | | | | | | | | This extends the canonicalizeClampLike function to allow cases where the input is truncated, but still matching on the types of the ICmps. For example %t = trunc i32 %X to i8 %a = add i32 %X, 128 %cmp = icmp ult i32 %a, 256 %c = icmp sgt i32 %X, -1 %f = select i1 %c, i8 High, i8 Low %r = select i1 %cmp, i8 %t, i8 %f becomes %c1 = icmp slt i32 %X, -128 %c2 = icmp sge i32 %X, 128 %s1 = select i1 %c1, i32 sext(Low), i32 %X %s2 = select i1 %c2, i32 sext(High), i32 %s1 %t = trunc i32 %s2 to i8 https://alive2.llvm.org/ce/z/vPzfxH We limit the transform to constant High and Low values, where we know the sext are free. Differential Revision: https://reviews.llvm.org/D108049
* [docs][NFC] Strip trailing whitespace from GettingStarted.rstLouis Dionne2021-10-281-16/+16
|
* Revert "[clang] Fortify warning for scanf calls with field width too big."Nico Weber2021-10-283-169/+12
| | | | | This reverts commit 15e3d39110fa4449be4f56196af3bc81b623f3ab. See https://reviews.llvm.org/D111833#3093629
* [lldb][NFC] Improve CppModuleConfiguration documentation a bitRaphael Isemann2021-10-281-3/+3
|
* [lld][ELF] Update name of function in comment. NFCSam Clegg2021-10-281-1/+1
| | | | This function was renamed in https://reviews.llvm.org/D62291.
* [DSE] Eliminates redundant store of an exisiting value (PR16520)Dawid Jurczak2021-10-282-8/+77
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That's https://reviews.llvm.org/D90328 follow-up. This change eliminates writes to variables where the value that is being written is already stored in the variable. This achieves the goal by looping through all memory definitions in the current state and getting defining access from each of them. When there is defining access where the write instruction is identical to the original instruction it will remove this redundant write. For example: void f() { x = 1; if foo() { x = 1; g(); } else { h(); } } void g(); void h(); The second x=1 will be eliminated since it is rewriting 1 to x. This pass will produce this: void f() { x = 1; if foo() { g(); } else { h(); } } void g(); void h(); Differential Revision: https://reviews.llvm.org/D111727
* [InstCombine] Fix rare condition violation in canonicalizeClampLikeDavid Green2021-10-282-4/+12
| | | | | | | | | With a "ult x, 0", the fold in canonicalizeClampLike does not validate with undef inputs. This condition will usually have been simplified away, but we should ensure the code is correct in case. https://alive2.llvm.org/ce/z/S8HQ6H vs https://alive2.llvm.org/ce/z/h2XBJ_ See: https://reviews.llvm.org/D108049
* [mlir][linalg] Fix FoldConstantTranspose execution inefficiencyLei Zhang2021-10-281-33/+93
| | | | | | | | | | | * Move SmallVectors outside of inner loops to avoid frequent allocations and deallocations * Calculate linearized index and call flat range getters to avoid internal shape querying behind `getValue`. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D112099
* [X86][AVX] Attempt to fold a scaled index into a gather/scatter scale ↵Simon Pilgrim2021-10-282-36/+60
| | | | | | | | | | immediate (PR13310) If the index operand for a gather/scatter intrinsic is being scaled (self-addition or a shl-by-immediate) then we may be able to fold that scaling into the intrinsic scale immediate value instead. Fixes PR13310. Differential Revision: https://reviews.llvm.org/D108539
* [clangd] Escape error message in AddUsingKadir Cetinkaya2021-10-281-1/+1
| | | | Fixes https://github.com/clangd/clangd/issues/900
* [gn build] (manually) port d736002e90b5Nico Weber2021-10-281-0/+1
|
* [SLP]Improve/fix reordering of the gathered graph nodes.Alexey Bataev2021-10-284-93/+185
| | | | | | | | | | Gathered loads/extractelements/extractvalue instructions should be checked if they can represent a vector reordering node too and their order should ve taken into account for better graph reordering analysis/ Also, if the gather node has reused scalars, they must be reordered instead of the scalars themselves. Differential Revision: https://reviews.llvm.org/D112454
* Re-instate -Wweak-template-vtables as a no-op flagHans Wennborg2021-10-283-1/+8
| | | | | | | Follow-up to 8c136805242014b6ad9ff1afcac9d7f4a18bec3f to allow a less abrupt migration for users. Differential revision: https://reviews.llvm.org/D112704
* [MLIR][LLVM] Add llvm.mlir.global_ctors/dtors and translation supportUday Bondhugula2021-10-287-4/+215
| | | | | | | Add llvm.mlir.global_ctors and global_dtors ops and their translation support to LLVM global_ctors/global_dtors global variables. Differential Revision: https://reviews.llvm.org/D112524
* [lldb/test] Allow indentation in inline testsPavel Labath2021-10-282-1/+37
| | | | | | | This makes it possible to use for loops (and other language constructs) in inline tests. Differential Revision: https://reviews.llvm.org/D112706
* [InstCombine] allow Negator to fold multi-use select with constant armsSanjay Patel2021-10-282-7/+18
| | | | | | | | | | | | | The motivating test is reduced from: https://llvm.org/PR52261 Note that the more general problem of folding any binop into a multi-use select of constants is still there. We need to ease the restriction in InstCombinerImpl::FoldOpIntoSelect() to catch those. But these examples never reach that code because Negator exclusively handles negation patterns within visitSub(). Differential Revision: https://reviews.llvm.org/D112657
* [InstCombine][ConstantFolding] Make ConstantFoldLoadThroughBitcast ↵Peter Waller2021-10-282-3/+30
| | | | | | | | | | | TypeSize-aware The newly added test previously caused the compiler to fail an assertion. It looks like a strightforward TypeSize upgrade. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D112142
* [InstSimplify] Add tests for the range of a half float. NFCDavid Green2021-10-281-0/+295
|
* [GlobalISel][Tablegen] Fix SameOperandMatcher's isIdentical checkKonstantin Schwarz2021-10-283-3/+135
| | | | | | | | | | | During rule optimization, identical SameOperandMatchers are hoisted into a common group, however previously only one operand index was considered. Commutable patterns can introduce SameOperandMatcher checks where the second index is commuted, resulting in a different check that cannot be hoisted. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D111506
* [libomptarget] Build DeviceRTL for amdgpuJon Chesterfield2021-10-2821-13/+90
| | | | | | | | | | Passes same tests as the current deviceRTL. Includes cmake change from D111987. CI is showing a different set of pass/fails to local, committing this without the tests enabled by default while debugging that difference. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D112227
* tsan: move memory access functions to a separate fileDmitry Vyukov2021-10-287-622/+645
| | | | | | | | | | | tsan_rtl.cpp is huge and does lots of things. Move everything related to memory access and tracing to a separate tsan_rtl_access.cpp file. No functional changes, only code movement. Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D112625
* [AMDGPU] Add 24-bit mulhi intrinsics in INTRINSIC_WO_CHAIN combine.Abinav Puthan Purayil2021-10-282-50/+31
| | | | | | | | | mul24 intrinsic's operands are simplified by AMDGPUTargetLowering::performIntrinsicWOChainCombine(). This change adds the mul24hi intrinsics in the combine since its operands can be simplified like that of the mul24 intrinsics. Differential Revision: https://reviews.llvm.org/D112702
* [AMDGPU] Fix rhs of the tests in amdgpu-codegenprepare-mul24.ll.Abinav Puthan Purayil2021-10-281-72/+72
| | | | Differential Revision: https://reviews.llvm.org/D112685
* [libc] automemcpyGuillaume Chatelet2021-10-2817-0/+2234
|
* [flang] Checks for pointers to intrinsic functionsEmil Kieri2021-10-285-21/+61
| | | | | | | | | | | Check that when a procedure pointer is initialised or assigned with an intrinsic function, or when its interface is being defined by one, that intrinsic function is unrestricted specific (listed in Table 16.2 of F'2018). Mark intrinsics LGE, LGT, LLE, and LLT as restricted specific. Getting their classifications right helps in designing the tests. Differential Revision: https://reviews.llvm.org/D112381
* [clangd] NFC: Use more idiomatic way of checking for definitionKirill Bobyrev2021-10-281-1/+1
|
* [clangd] NFC: Match function signature in the header and source fileKirill Bobyrev2021-10-281-2/+2
|
* [dexter] XFAIL feature_test source-root-dir.cppOCHyams2021-10-281-0/+3
| | | | Test is failing for unknown reasons and needs investigating.
* [AMDGPU] Add gfx10 uaddsat test coverage. NFC.Jay Foad2021-10-281-0/+123
|
* [Test] Regenerate some of llc test checks using auto updaterMax Kazantsev2021-10-285-43/+194
|
* [analyzer] sprintf is a taint propagator not a sourceBalazs Benics2021-10-282-1/+11
| | | | | | | | | | | | | | | | Due to a typo, `sprintf()` was recognized as a taint source instead of a taint propagator. It was because an empty taint source list - which is the first parameter of the `TaintPropagationRule` - encoded the unconditional taint sources. This typo effectively turned the `sprintf()` into an unconditional taint source. This patch fixes that typo and demonstrated the correct behavior with tests. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D112558
* [MLIR][OpenMP] Fixed the missing inclusive clause in omp.wsloop and fix ↵Shraiysh Vaishay2021-10-285-22/+188
| | | | | | | | | | | | | | | order clause This patch adds the inclusive clause (which was missed in previous reorganization - https://reviews.llvm.org/D110903) in omp.wsloop operation. Added a test for validating it. Also fixes the order clause, which was not accepting any values. It now accepts "concurrent" as a value, as specified in the standard. Reviewed By: kiranchandramohan, peixin, clementval Differential Revision: https://reviews.llvm.org/D112198
* [AMDGPU][GlobalISel] Fix waterfall loopsSebastian Neubauer2021-10-2848-984/+1880
| | | | | | | | | | | | | | - Move the `s_and exec` to its correct position before the content of the waterfall loop - Use the SI_WATERFALL pseudo instruction, like for sdag, to benefit from optimizations - Add support for indirect function calls To support indirect calls, add a G_SI_CALL instruction without register class restrictions and insert a waterfall loop when applying register banks. Differential Revision: https://reviews.llvm.org/D109052
* [GlobalISel] Simplify RegBankSelectNeubauer, Sebastian2021-10-281-17/+5
| | | | | | | | Save the instruction list of a block before selecting banks. This allows to cope with moved instructions, even if they are reordered or splitted into multiple basic blocks. Differential Revision: https://reviews.llvm.org/D111223
* [lldb] Remove ConstString from Process, ScriptInterpreter and StructuredData ↵Pavel Labath2021-10-2829-159/+76
| | | | plugin names
* [Test] Regenerate checks using auto-update scriptMax Kazantsev2021-10-282-20/+65
|