Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Templating IRDL Constraint #2

Closed
wants to merge 1,384 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
1384 commits
Select commit Hold shift + click to select a range
4de58eb
[DSE][NFC] Add nounwind attribute to match test intent
Oct 3, 2022
d9df119
[LangRef] Fix too short title underline
eopXD Oct 7, 2022
68ab7ac
[LLDB] Add "frame select" as equivalent of GDB's "frame" command
DavidSpickett Sep 29, 2022
ccf53ca
[ValueTracking] Remove unused Offset argument in getConstantStringInf…
nikic Oct 7, 2022
e09aa0d
[clangd][Tweak] Make sure enclosing function doesnt have invalid chil…
kadircet Oct 5, 2022
c9b771b
Keep inherited dllimport/export attrs for explicit specialization of …
zmodem Sep 18, 2022
b43a4d0
[LoopPeeling] Support peeling loops with non-latch exits
nikic Sep 27, 2022
46ca425
[MLIR][Affine] Fix crash in normalizeMemRefType
bondhugula Oct 7, 2022
1f8ffbd
[mlir][bufferize][NFC] Address review comments of D135420
matthias-springer Oct 7, 2022
3771310
[ConstraintElimination] Convert to unsigned Pred if possible.
fhahn Oct 7, 2022
d85f6e5
[mlir][llvmir] Import intrinsics with attributes from LLVMIR.
gysit Oct 7, 2022
75358f0
[AArch64] Lower multiplication by a constant int to madd
vfdff Oct 7, 2022
317b558
Revert "[lld/mac] Port typo correction for undefined symbols from ELF…
zmodem Oct 7, 2022
b0ac5d7
[mlir][Bazel] Port d85f6e5d57f38f0cbbc756484e3a93ae89b11195
akuegel Oct 7, 2022
14e2592
[clang][CodeGen] Use poison instead of undef as placeholder in ARM bu…
ManuelJBrito Oct 7, 2022
4627cef
[OpenMP][OMPIRBuilder] Migrate emitOffloadingArraysArgument from clang
jsjodin Sep 29, 2022
39db5e1
[CodeGen] Convert tests to opaque pointers (NFC)
nikic Oct 7, 2022
551a242
[flang] Allow fir.class in AnyRefOrBox
clementval Oct 7, 2022
d779356
[SourceManager] Fix the incorrect counting stats in getFileIDLoaded.
hokein Oct 7, 2022
a4afa2b
Revert "Thread safety analysis: Support copy-elided production of sco…
zmodem Oct 7, 2022
5a42c90
[clang] Make variables of undeduced types to have dependent alignment
ArcsinX Oct 7, 2022
e3a9e31
[MachineInstr] Use unsigned int for opcode (NFC)
cdevadas Oct 4, 2022
fd7b0ee
[AMDGPU][MC][GFX11] Add VOPD VGPR bank access validation
dpreobra Oct 7, 2022
a290f3c
[OpenMP] Convert tests to opaque pointers (NFC)
nikic Oct 7, 2022
b5b4a07
[OpenMP][OMPIRBuilder] Remove calls to dump in test
jsjodin Oct 7, 2022
1d1c755
[AMDGPU][GFX11][NFC] Refactor VOPD handling in codegen
dpreobra Oct 7, 2022
853df5e
[Concepts] Fix friend duplicate detection when referencing containing…
Oct 7, 2022
8f8e4e3
[AMDGPU][MC][GFX11] Correct v_fmac_.*_e64_dpp
dpreobra Oct 7, 2022
3f3018b
[SimplifyLibCalls] Pre-commit test case showing bug with wide char su…
bjope Oct 4, 2022
01e1f32
[ValueTracking][SimplifyLibCalls] Fix bug in getConstantDataArrayInfo…
bjope Oct 4, 2022
8ee529a
[test][ExpandMemCmp] Convert test cases to opaque pointers. NFC
bjope Oct 7, 2022
40e353d
[OpenMP] Convert more tests to opaque pointers (NFC)
nikic Oct 7, 2022
edbde15
Fix typos - show in the binary
sylvestre Oct 7, 2022
0946e10
[mlir][doc] clarify (ir)recoverable failures in transform dialect
ftynse Oct 7, 2022
bb46022
[CMake] Small fix to HLSL header install paths
llvm-beanz Oct 7, 2022
107ee26
[AMDGPU] Disable bool range metadata to workaround backend issue
yxsamliu Sep 6, 2022
e838c06
[Flang] Use the ultimate symbol in a DeallocateStmt check
kiranchandramohan Oct 7, 2022
3b652fc
[analyzer] Fix static code analysis concerns
smanna12 Oct 7, 2022
9e93143
[SCEV] Support clearing Block/LoopDispositions for a single value.
fhahn Oct 7, 2022
1bddb0f
[Libomptarget] Clean up DeviceRTL CMake and remove unused flags
jhuber6 Oct 7, 2022
b6676f3
[LICM] Add test for single thread model promotion (NFC)
nikic Oct 7, 2022
eb26baf
Fix test bool-range.cu
yxsamliu Oct 7, 2022
473210a
[Hexagon] Constify member refererence, NFC
Sep 27, 2022
2216d8f
[Hexagon] Replace llvm::Optional with std::optional, NFC
Sep 28, 2022
7f90597
[AMDGPU] Fix a warning
kazutakahirata Oct 7, 2022
f53d60e
[InstCombine] add tests for udiv with shift-left divisor; NFC
rotateright Oct 6, 2022
68f267d
[InstCombine] add tests for udiv with common factor; NFC
rotateright Oct 6, 2022
bdfefac
[InstCombine] refactor sdiv by (negative) power-of-2 folds; NFCI
rotateright Oct 7, 2022
d376b26
[Hexagon] Make HexagonSubtarget::isHVXVectorType take EVT instead of MVT
Oct 6, 2022
06019b8
[Hexagon] Add default parameter to HexagonVectorCombine::getIntTy, NFC
Oct 6, 2022
af664e4
[mlir][Transform] Add a transform.split_handles operation and fix gen…
nicolasvasilache Oct 7, 2022
ad1efb5
[mlir][Linalg] Retire LinalgStrategyDecomposePass and filter-based pa…
nicolasvasilache Oct 7, 2022
9033e57
[mlir][doc] Remove trailing whitespace (NFC)
jpienaar Oct 7, 2022
e492cdc
[Hexagon] Add couple of helper functions in HexagonVectorCombine
Oct 6, 2022
d184045
[Hexagon] Formatting changes, NFC
Oct 6, 2022
defe072
[Libomptarget] Remove debug definitions DeviceRTL's CMake
jhuber6 Oct 7, 2022
b5b79eb
[mlir][Linalg] Retire LinalgStrategyPadPass and filter-based pattern.
nicolasvasilache Oct 7, 2022
901f555
[llvm-profdata] Add --output-format option
ellishg Oct 4, 2022
70fb7bb
[InstrProf][llvm-profdata] Dump profile correlation data as YAML
ellishg Oct 7, 2022
92f698f
Revert "[SCEV] Support clearing Block/LoopDispositions for a single v…
fhahn Oct 7, 2022
49acab3
[flang][nfc] Relocate a few driver tests
banach-space Jul 27, 2022
9520fca
[InstCombine] add tests for sdiv-of-shl-1; NFC
rotateright Oct 7, 2022
5e89662
[InstCombine] add tests for ashr exact; NFC
rotateright Oct 7, 2022
3e6767e
[InstCombine] propagate 'exact' when converting ashr to lshr
rotateright Oct 7, 2022
4cdfab1
[Clang][OpenMP] Add one missing form of atomic compare capture
shiltian Oct 7, 2022
395d261
[NFC] Remove trailing white space in openmp/libomptarget/src/CMakeLis…
shiltian Oct 7, 2022
6a6f10f
[Docs] [HLSL] Add note about PCH support
python3kgae Oct 5, 2022
a9f95b7
[libc] add strerror_r function
michaelrj-google Oct 4, 2022
c384b20
[opt] Remove temporary legacy pass name translations
aeubanks Oct 7, 2022
bb4f0af
[clangd] Fix buildbots after d1f13c54f172875d9a14c46c09afb1f22d78cdf8
kadircet Oct 7, 2022
07793f9
[libc] add strsignal and refactor message mapping
michaelrj-google Oct 5, 2022
3e097fa
[BOLT][NFC] Remove text section assertion
maksfb Oct 3, 2022
c683e28
[BOLT] Properly set _end symbol
maksfb Oct 3, 2022
0b213c9
[BOLT] Fix writing out unmarked .eh_frame section
maksfb Oct 4, 2022
5fca9c5
[BOLT] Change order of new sections
maksfb Oct 5, 2022
07c0a41
[libc] add printf decimal float conversion
michaelrj-google Jul 12, 2022
696b8ea
[BOLT] Testcase to repro dyn reloc bug
rafaelauler Oct 7, 2022
ea607d0
[llvm-profdata] Rename show flag to --show-format
ellishg Oct 7, 2022
d3d8465
[opt] Stop treating alias analysis specially when translating legacy …
aeubanks Oct 7, 2022
cb66e12
Remove PlaceSafepoints pass
preames Oct 6, 2022
37122c7
[opt] Remove -passes=asan-pipeline
aeubanks Oct 7, 2022
ec86e9a
[LoopUnroll] Add test for crash exposed by 9e931439.
fhahn Oct 7, 2022
fe50eac
[llvm-reduce] Fix di-metadata pass test failures
ormris Oct 7, 2022
19ad1cd
Recommit "[SCEV] Support clearing Block/LoopDispositions for a single…
fhahn Oct 7, 2022
d227029
[ConstraintElimination] Add test for regression after 3771310eede.
fhahn Oct 7, 2022
d32df0f
[mlir][arith] Expose dedicated API for expanding ceil/floor division
antiagainst Oct 7, 2022
3a25b21
llvm-reduce: Fix missing C++ mode comments
arsenm Oct 5, 2022
023f24d
llvm-reduce: Use -abort-on-invalid-reduction in a test
arsenm Oct 4, 2022
0a15942
llvm-reduce: Fix invalid reduction for phis with repeat inputs
arsenm Oct 6, 2022
7721cba
llvm-reduce: Fix another invalid reduction with repeated input phis
arsenm Oct 6, 2022
74ef03d
AMDGPU: Update SlotIndexes independently of LiveIntervals
arsenm Sep 15, 2022
0edff6f
[Clang] Support constexpr builtin fmax
Izaron Sep 21, 2022
13ac102
[LoopSimplifyCFG] Invalidate SCEV dispositions.
fhahn Oct 7, 2022
c966da3
[opt] Remove legacy -print-dom-info pass
aeubanks Oct 7, 2022
f3a2cbc
Refactored CUDA version housekeeping to use less boilerplate.
Artem-B Oct 5, 2022
9a01cca
Add support for CUDA-11.8 and sm_{87,89,90} GPUs.
Artem-B Aug 10, 2022
27ef42b
Fix warnings in build done by clang-based compiler
Oct 7, 2022
c585a44
[Clang] Use C++17 in constant-builtins-fmax.cpp test
Izaron Oct 7, 2022
978f11c
[BOLT][TEST] Fix section order test
maksfb Oct 7, 2022
f3a928e
[opt] Don't translate legacy -analysis flag to require<analysis>
aeubanks Oct 7, 2022
7c57a37
[JITLink][aarch64] Fix typo in error message.
lhames Oct 7, 2022
42cb2f8
[GlobalISel] Mark mi_match as nodiscard
Oct 7, 2022
62ea6c5
[DAGCombine] Deduplicate addcarry node using commutativity.
deadalnix Oct 7, 2022
09d84e0
[Hexagon] Implement helper to get intrinsic for instruction opcode
Oct 7, 2022
7c7f331
[libc][nfc] fix comment in clock_gettime
michaelrj-google Oct 7, 2022
47b1623
[llvm-reduce] Fail verifier less when removing debug metadata
aeubanks Oct 7, 2022
ec96aea
[libFuzzer] update the libFuzzer docs to reflect the current state.
kcc Oct 5, 2022
aa8ab5b
[libc] Document which date funcs are needed/done
kaladron Oct 8, 2022
9f67047
[VP][RISCV] Add vp.smax/smin/umax/umin intrinsics
topperc Oct 7, 2022
f749b2d
[RISCV] Fix incorrect parenthese placement in comment. NFC
topperc Oct 8, 2022
f0c93fd
[mlir][vector] Merge accumulator/result transpose into contract
antiagainst Oct 8, 2022
9e80add
[memprof] dump memprof profile when receive deadly signals
Enna1 Oct 8, 2022
45b9c6b
[GlobalISel] Add commutative matchers for compares.
Oct 7, 2022
730ee65
[LoongArch] Set correct encodings for DWARF exception handling
wangleiat Oct 6, 2022
5e5d214
BareMetal: detect usr/include/c++/v1 path in sysroot
m-gupta Sep 22, 2022
79ed24e
[clangd] Enable standard library index by default.
sam-mccall Sep 15, 2022
3b276a0
[ARM64EC][clang-cl] Add arm64EC test; NFC
bcl5980 Oct 8, 2022
f4ccb57
[LoongArch] Do not assert value type in isFPImmLegal
gonglingqin Oct 8, 2022
566c277
[X86] Remove AVX512VP2INTERSECT from Sapphire Rapids.
FreddyLeaf Oct 8, 2022
9974ed8
[C++20] [Modules] Remove assertion of current module when acting on i…
ChuanqiXu9 Oct 8, 2022
0c4f0bf
[C++20] [Modules] Only allow redeclarations in partitions if they are…
ChuanqiXu9 Oct 8, 2022
9d31d1c
[ConstraintElimination] Use logic from 3771310eed for queries only.
fhahn Oct 8, 2022
a8fbd11
[clang-tidy] Ignore concepts in `misc-redundant-expression`
Izaron Sep 14, 2022
e17ec8e
[libc++] Make charconv require C++17 or later.
mordante Sep 2, 2022
fe15290
[InstCombine] fold exact sdiv to ashr
rotateright Oct 8, 2022
68d4dbc
Revert "[InstCombine] fold exact sdiv to ashr"
rotateright Oct 8, 2022
ebda066
[InstCombine] add test for sdiv with shl; NFC
rotateright Oct 8, 2022
eccb9a7
[InstCombine] fold exact sdiv to ashr (2nd try)
rotateright Oct 8, 2022
be858bd
[ConstraintElimination] Remove unused function (NFC).
fhahn Oct 8, 2022
73950f2
[LV] Replace check with assert for reduction resume values (NFC).
fhahn Oct 8, 2022
e0136a6
[ConstraintElimination] Support chained GEPs with constant offsets.
fhahn Oct 8, 2022
2bb34cc
[clangd] FindTarget: UsingEnumDecl is not an alias
sam-mccall Oct 8, 2022
39532ea
[RISCV] Add signext attribute to i32 arguments in some tests. NFC
topperc Oct 8, 2022
4fbe335
[LTO] Make local linkage GlobalValue in non-prevailing COMDAT availab…
MaskRay Oct 8, 2022
30c7c42
Apply clang-tidy fixes for performance-unnecessary-value-param in IRC…
joker-eph Oct 6, 2022
a76bd4f
Apply clang-tidy fixes for llvm-else-after-return in TosaToLinalg.cpp…
joker-eph Oct 6, 2022
1ae4051
[ConstraintElimination] Add tests for chained GEPs without inbounds.
fhahn Oct 8, 2022
3a44435
Add myself to CREDITS.TXT + CODE_OWNERS.TXT
RKSimon Oct 8, 2022
7b85e76
[PGO] Consider parent context when weighing branches with likelyhood.
Sep 22, 2022
5699692
[Support] Add fast path for StringRef::find with needle of length 2.
ishitatsuyuki Oct 9, 2022
313c93a
Add myself to CREDITS.TXT + CODE_OWNERS.TXT
phoebewang Oct 9, 2022
b0c2f90
[RISCV] Merge more rv32/rv64 vector intrinsic tests that contain the …
topperc Oct 8, 2022
fc1f631
Remove myself as X86 Backend owner.
topperc Oct 9, 2022
826693e
[CMake] Use libcxx-abi-* targets for in-tree sanitizer C++ ABI
petrhosek Sep 29, 2022
f204229
[lld-macho] Implement -ignore_auto_link
keith Oct 9, 2022
31327c2
[LoongArch] Don't merge FrameIndex accesses into [F]{LD,ST}X
xen0n Oct 9, 2022
bc5e969
[PowerPC] Add vector pair calling convention for AIX
orcguru Oct 9, 2022
b72a364
[C++20] [Coroutines] Exit early if we found co_await appears in
ChuanqiXu9 Oct 9, 2022
a2c6a11
[libc++][ranges]implement `std::views::take_while`
huixie90 Sep 30, 2022
da064c9
[gn build] Port a2c6a1193f41
llvmgnsyncbot Oct 9, 2022
11a6e64
[ConstraintElim] Move logic to get constraint for solving to helper.
fhahn Oct 9, 2022
5593d36
[LoongArch] Expand fptrunc store from f64 to f32
gonglingqin Oct 9, 2022
ac21938
[clangd] Fix rename for symbol introduced by UsingDecl
tom-anders Oct 7, 2022
69e7727
[clang-format] Add support to remove unnecessary semicolons after fun…
mydeveloperday Oct 9, 2022
7329dc0
[RISCV][NFC] Fix unused variable warning.
Oct 6, 2022
eaf6e2f
[DSE] Relax constraint on isGuaranteedLoopInvariant
Oct 5, 2022
a40fdef
[ConstraintElimination] Add tests for GEPs with different source types.
fhahn Oct 9, 2022
fee8f56
[ConstraintElimination] Include index type scale.
fhahn Oct 9, 2022
4a37765
[AArch64][NFC] Precommit test case to show sub-optimal codegen for ad…
mingmingl-llvm Oct 4, 2022
159fb37
[AArch64] Swap 'lsl(val1,small-shmt)' to right hand side for AND(lsl(…
mingmingl-llvm Oct 4, 2022
92f26d4
Apply clang-tidy fixes for readability-identifier-naming in TosaToLin…
joker-eph Oct 6, 2022
0666e50
Apply clang-tidy fixes for modernize-use-equals-default in Bufferize.…
joker-eph Oct 6, 2022
50312ea
[tsan][go] Fix string equal operator
Oct 10, 2022
6b24bdb
[RISCV] Remove some vsetvli intrinsics under Zve32*.
topperc Oct 10, 2022
aedeb8d
[LLJIT] Default to EPCEHFrameRegistrar rather than InProcessEHFrameRe…
lhames Oct 10, 2022
d6c9b3c
[ORC] Relax assertions in SimpleRemoteEPCTransport.
lhames Oct 10, 2022
158ad80
[examples] Fix deprecated use of llvm::empty.
lhames Oct 10, 2022
a835b92
[RISCV] Use hasAllWUsers to recover XORI/ORI
ChunyuLiao Oct 9, 2022
0cf70a3
[flang] Allow conversion from boxed derived type to fir.class
clementval Oct 10, 2022
1ae33bf
[clang-tidy] Add cppcoreguidelines-avoid-do-while check
carlosgalvezp Aug 23, 2022
101799b
[gn build] Port 1ae33bf42680
llvmgnsyncbot Oct 10, 2022
2ae27dc
[mlir][Linalg] Use ConfinedAttr for dimensions of ReduceOp.
akuegel Oct 5, 2022
36b13eb
[AA] Remove deprecated ModRefInfo helpers (NFC)
nikic Oct 10, 2022
bc839b4
[Bindings] Remove go bindings
nikic Oct 7, 2022
874c032
[Attributor] Use ConstantFoldLoadFromConst()
nikic Oct 7, 2022
c3e073b
Extended Documentation of LLVM_TARGETS_TO_BUILD by listing all possib…
Oct 10, 2022
d48e630
[AArch64][SVE] Fix AArch64_SVE_VectorCall calling convention
MDevereau Sep 8, 2022
2f46f50
Add llvm-gsymutil to the Bazel build files.
sfc-gh-sgiesecke Oct 10, 2022
b3d4d9c
[LLDB] Complete set of char tests for static integral members
DavidSpickett Oct 6, 2022
a4561d9
[lldb][CPlusPlusLanguage] Respect the step-avoid-regex for functions …
Michael137 Oct 6, 2022
2343ad7
[AArch64] Add index check before lowerInterleavedStore() uses Shuffle…
DataCorrupted Oct 10, 2022
71b4bc1
Fix clang-tools-extra Sphinx build
AaronBallman Oct 10, 2022
3f36bdd
[PhaseOrdering] add test for sdiv with common factor; NFC
rotateright Oct 10, 2022
6876004
[InstCombine] add 'exact' to udiv test for more coverage; NFC
rotateright Oct 10, 2022
9cff471
[InstCombine] fold udiv with common factor
rotateright Oct 10, 2022
b494a56
[gn build] port bc839b4b4e27
nico Oct 10, 2022
7915027
[mlir][Linalg] Retire LinalgStrategyTileAndFusePass and filter-based …
nicolasvasilache Oct 10, 2022
6685e56
Disallow dereferencing of void* in C++.
Oct 4, 2022
4baa5ae
Possibly fix sphinx regression from 6685e56ceddf
Oct 10, 2022
c7545de
[mlir][Bazel] Fix for reviews.llvm.org/D135559
gflegar Oct 10, 2022
ebb258d
[AMDGPU] Make V_SAT_PK_U8_I16 a True16 Instruction
Sisyph Oct 7, 2022
deb82d4
Revert "[PGO] Make emitted symbols hidden"
abrachet Oct 10, 2022
b920407
[LICM] Disable thread-safety checks in single-thread model
shubhamnarlawar Oct 10, 2022
80e49f4
[ConstraintElimination] Bail out for GEPs with scalable vectors.
fhahn Oct 10, 2022
461c461
[mlir][sparse] Rename SparseTensorFile to SparseTensorReader.
bixia1 Oct 7, 2022
b62f5fb
[Clang][Sema] Narrow inline namespace filtration for unqualified frie…
troyj-gh Oct 10, 2022
ec32386
[Clang] Support constexpr builtin fmin
Izaron Oct 7, 2022
fd91e8f
[lldb][test] Skip TestStepAvoidsRegexp.py on Windows
Michael137 Oct 10, 2022
83c65fb
[mlir][linalg] Expose pattern to collapse generic op dimensions
ThomasRaoux Oct 7, 2022
4b6bd1c
[LoopSimplifyCFG] Clear SCEV dispositions when removing dead blocks.
fhahn Oct 10, 2022
b8a8c2d
Allow DynamicLoaderDarwinKernel to activate without binary
jasonmolenda Oct 10, 2022
9eb1185
Implement `getrandom` function for linux targets.
SchrodingerZhu Oct 10, 2022
d4facda
[TargetLowering][RISCV][X86] Support even divisors in expandDIVREMByC…
topperc Oct 10, 2022
9ced729
Repair a confusing standards reference; NFC
AaronBallman Oct 10, 2022
231fc00
[clang-format][docs][NFC] Fix invalid syntax in ShortLambdaStyle exam…
rymiel Oct 10, 2022
1aa06ae
[mlir][sparse] Removing DLL attributes from ExecutionEngine/SparseTen…
wrengr Oct 8, 2022
faea104
Fix a typo in the docs; NFC
AaronBallman Oct 10, 2022
438e591
[libc] Add implementation of pthread_atfork.
Oct 7, 2022
fb27fd5
Revert "[LTO] Make local linkage GlobalValue in non-prevailing COMDAT…
rupprecht Oct 10, 2022
6c49d5d
Fix unused variable warning from D134529
Oct 10, 2022
9d69c60
Fix a typo in the Release Notes; NFC
AaronBallman Oct 10, 2022
ac0fe5d
[mlir][linalg] Remove unused payload related OutOpOperand
raikonenfnu Oct 10, 2022
0fde0f4
[AMDGPU][NFC] Update DW_OP_LLVM_overlay documentation
t-tye Oct 4, 2022
e66cfb6
Update implementation status of P2468R2
usx95 Oct 10, 2022
6ace81d
[VectorCombine] add test with out-of-bounds insert/extract index; NFC
rotateright Oct 10, 2022
baab4aa
[VectorCombine] convert scalar fneg with insert/extract to vector fneg
rotateright Oct 10, 2022
ebb0be9
[ConstraintElimination] Regenerate check lines for test.
fhahn Oct 10, 2022
4b599fa
[SCEV] Verify block disposition cache.
fhahn Oct 10, 2022
2bb86b6
[clang] Mention -Werror changes revived for Clang 16
thesamesam Oct 9, 2022
0982db1
[Clang] reject bit-fields as instruction operands in Microsoft style …
tahonermann Oct 7, 2022
6b89e89
Reword diagnostics for style; NFC
AaronBallman Oct 10, 2022
d208bae
[mlir] Fix a warning
kazutakahirata Oct 10, 2022
277c382
[lld-macho] Flip ZERO_AR_DATE default
keith Oct 9, 2022
fa58926
[mlir][linalg] Remove redundant check on linalgOps to fix windows bui…
raikonenfnu Oct 10, 2022
8a7d499
[AMDGPU] Fix True16 patterns for cmp on GFX11
Sisyph Oct 10, 2022
98190d2
[NFC][3/n] Remove enable-new-pm from Inline tests
speryt Oct 10, 2022
52b8f3a
[LinkerWrapper] Fix failing linker wrapper save temps test
jhuber6 Oct 10, 2022
deb8f8a
[ARM] Add errors for MVE exclusive registers.
davemgreen Oct 10, 2022
2d10f81
[mlir][Vector] Introduce 'vector.mask' operation and MaskableOpInterface
dcaballe Oct 10, 2022
1ac525b
[libc] add sysconf with pagesize
michaelrj-google Sep 22, 2022
0121b1a
Revert "[TargetLowering][RISCV][X86] Support even divisors in expandD…
topperc Oct 10, 2022
7a3c9a8
[SPIRV] Fix call lowering of "anonymous" functions
michalpaszkowski Oct 6, 2022
e5fd507
[NFCI] More TypeCategoryImpl refactoring.
slackito Sep 22, 2022
8fc63d1
[mlir][sparse] fixed memory leak on sparse tensors
aartbik Oct 10, 2022
7639ba6
[libc] add isatty
michaelrj-google Oct 10, 2022
b8e7176
Revert "[gn build] Don't set LLVM_UNREACHABLE_OPTIMIZE when llvm_enab…
aeubanks Oct 10, 2022
707996e
[libc] handle case where /dev/tty doesn't exist
michaelrj-google Oct 10, 2022
4a95a64
[instcombine] (extelt (inselt Vec, Value, Index), Index) -> Value
dsandersllvm Oct 10, 2022
d325d2b
[mlir][tosa] Fix tosa::Select to linalg::generic indexingMaps bug
Oct 10, 2022
aec239c
[libc] reset errno in isatty tests
michaelrj-google Oct 10, 2022
a6abcfe
[libc] fix header list for x86_64
michaelrj-google Oct 10, 2022
2cfa92d
Add IRDL dialect
math-fehr Sep 21, 2022
94e74cf
Fix define name
math-fehr Sep 22, 2022
d1a2be1
Rename ConcreteTypeWrapper to CppTypeWrapper
math-fehr Sep 23, 2022
3fd12fc
Let users register IRDL files in mlir-opt
math-fehr Sep 26, 2022
bad7b18
Add IRDL to the dialects to emit
math-fehr Sep 26, 2022
f719b86
Add mlir-irdl-opt
math-fehr Sep 26, 2022
efd0fbb
Add IRDL tests
math-fehr Sep 26, 2022
13da39a
refactored constraint file name
Moxinilian Dec 18, 2022
5472791
make constraints generic over item kind
Moxinilian Dec 28, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[OpenMP][OMPIRBuilder] Migrate emitOffloadingArraysArgument from clang
This patch moves the emitOffloadingArraysArgument function and
supporting data structures to OpenMPIRBuilder. This will later be used
in flang as well. The TargetDataInfo class was split up into generic
information and clang-specific data, which remain in clang. Further
migration will be done in in the future.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D134662
  • Loading branch information
jsjodin committed Oct 7, 2022
commit 4627cef1134f99f3802a5ebfe26188d2c66da22f
212 changes: 69 additions & 143 deletions clang/lib/CodeGen/CGOpenMPRuntime.cpp
Original file line number Diff line number Diff line change
@@ -9442,7 +9442,7 @@ static void emitNonContiguousDescriptor(
DimsAddr, CGM.Int8PtrTy, CGM.Int8Ty);
llvm::Value *P = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.PointersArray, 0, I);
Info.RTArgs.PointersArray, 0, I);
Address PAddr(P, CGM.VoidPtrTy, CGF.getPointerAlign());
CGF.Builder.CreateStore(DAddr.getPointer(), PAddr);
++L;
@@ -9520,13 +9520,13 @@ static void emitOffloadingArrays(
Ctx.VoidPtrTy, PointerNumAP, nullptr, ArrayType::Normal,
/*IndexTypeQuals=*/0);

Info.BasePointersArray =
Info.RTArgs.BasePointersArray =
CGF.CreateMemTemp(PointerArrayType, ".offload_baseptrs").getPointer();
Info.PointersArray =
Info.RTArgs.PointersArray =
CGF.CreateMemTemp(PointerArrayType, ".offload_ptrs").getPointer();
Address MappersArray =
CGF.CreateMemTemp(PointerArrayType, ".offload_mappers");
Info.MappersArray = MappersArray.getPointer();
Info.RTArgs.MappersArray = MappersArray.getPointer();

// If we don't have any VLA types or other types that require runtime
// evaluation, we can use a constant array for the map sizes, otherwise we
@@ -9555,7 +9555,7 @@ static void emitOffloadingArrays(
QualType SizeArrayType = Ctx.getConstantArrayType(
Int64Ty, PointerNumAP, nullptr, ArrayType::Normal,
/*IndexTypeQuals=*/0);
Info.SizesArray =
Info.RTArgs.SizesArray =
CGF.CreateMemTemp(SizeArrayType, ".offload_sizes").getPointer();
} else {
auto *SizesArrayInit = llvm::ConstantArray::get(
@@ -9579,9 +9579,9 @@ static void emitOffloadingArrays(
CGM.getNaturalTypeAlignment(Ctx.getIntTypeForBitwidth(
/*DestWidth=*/64, /*Signed=*/false))),
CGF.getTypeSize(SizeArrayType));
Info.SizesArray = Buffer.getPointer();
Info.RTArgs.SizesArray = Buffer.getPointer();
} else {
Info.SizesArray = SizesArrayGbl;
Info.RTArgs.SizesArray = SizesArrayGbl;
}
}

@@ -9593,12 +9593,12 @@ static void emitOffloadingArrays(
CGM.getOpenMPRuntime().getName({"offload_maptypes"});
auto *MapTypesArrayGbl =
OMPBuilder.createOffloadMaptypes(Mapping, MaptypesName);
Info.MapTypesArray = MapTypesArrayGbl;
Info.RTArgs.MapTypesArray = MapTypesArrayGbl;

// The information types are only built if there is debug information
// requested.
if (CGM.getCodeGenOpts().getDebugInfo() == codegenoptions::NoDebugInfo) {
Info.MapNamesArray = llvm::Constant::getNullValue(
Info.RTArgs.MapNamesArray = llvm::Constant::getNullValue(
llvm::Type::getInt8Ty(CGF.Builder.getContext())->getPointerTo());
} else {
auto fillInfoMap = [&](MappableExprsHandler::MappingExprInfo &MapExpr) {
@@ -9610,7 +9610,7 @@ static void emitOffloadingArrays(
CGM.getOpenMPRuntime().getName({"offload_mapnames"});
auto *MapNamesArrayGbl =
OMPBuilder.createOffloadMapnames(InfoMap, MapnamesName);
Info.MapNamesArray = MapNamesArrayGbl;
Info.RTArgs.MapNamesArray = MapNamesArrayGbl;
}

// If there's a present map type modifier, it must not be applied to the end
@@ -9626,15 +9626,15 @@ static void emitOffloadingArrays(
if (EndMapTypesDiffer) {
MapTypesArrayGbl =
OMPBuilder.createOffloadMaptypes(Mapping, MaptypesName);
Info.MapTypesArrayEnd = MapTypesArrayGbl;
Info.RTArgs.MapTypesArrayEnd = MapTypesArrayGbl;
}
}

for (unsigned I = 0; I < Info.NumberOfPtrs; ++I) {
llvm::Value *BPVal = *CombinedInfo.BasePointers[I];
llvm::Value *BP = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.BasePointersArray, 0, I);
Info.RTArgs.BasePointersArray, 0, I);
BP = CGF.Builder.CreatePointerBitCastOrAddrSpaceCast(
BP, BPVal->getType()->getPointerTo(/*AddrSpace=*/0));
Address BPAddr(BP, BPVal->getType(),
@@ -9649,7 +9649,7 @@ static void emitOffloadingArrays(
llvm::Value *PVal = CombinedInfo.Pointers[I];
llvm::Value *P = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.PointersArray, 0, I);
Info.RTArgs.PointersArray, 0, I);
P = CGF.Builder.CreatePointerBitCastOrAddrSpaceCast(
P, PVal->getType()->getPointerTo(/*AddrSpace=*/0));
Address PAddr(P, PVal->getType(), Ctx.getTypeAlignInChars(Ctx.VoidPtrTy));
@@ -9658,7 +9658,7 @@ static void emitOffloadingArrays(
if (RuntimeSizes.test(I)) {
llvm::Value *S = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.Int64Ty, Info.NumberOfPtrs),
Info.SizesArray,
Info.RTArgs.SizesArray,
/*Idx0=*/0,
/*Idx1=*/I);
Address SAddr(S, CGM.Int64Ty, Ctx.getTypeAlignInChars(Int64Ty));
@@ -9688,76 +9688,6 @@ static void emitOffloadingArrays(
emitNonContiguousDescriptor(CGF, CombinedInfo, Info);
}

namespace {
/// Additional arguments for emitOffloadingArraysArgument function.
struct ArgumentsOptions {
bool ForEndCall = false;
ArgumentsOptions() = default;
ArgumentsOptions(bool ForEndCall) : ForEndCall(ForEndCall) {}
};
} // namespace

/// Emit the arguments to be passed to the runtime library based on the
/// arrays of base pointers, pointers, sizes, map types, and mappers. If
/// ForEndCall, emit map types to be passed for the end of the region instead of
/// the beginning.
static void emitOffloadingArraysArgument(
CodeGenFunction &CGF, llvm::Value *&BasePointersArrayArg,
llvm::Value *&PointersArrayArg, llvm::Value *&SizesArrayArg,
llvm::Value *&MapTypesArrayArg, llvm::Value *&MapNamesArrayArg,
llvm::Value *&MappersArrayArg, CGOpenMPRuntime::TargetDataInfo &Info,
const ArgumentsOptions &Options = ArgumentsOptions()) {
assert((!Options.ForEndCall || Info.separateBeginEndCalls()) &&
"expected region end call to runtime only when end call is separate");
CodeGenModule &CGM = CGF.CGM;
if (Info.NumberOfPtrs) {
BasePointersArrayArg = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.BasePointersArray,
/*Idx0=*/0, /*Idx1=*/0);
PointersArrayArg = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.PointersArray,
/*Idx0=*/0,
/*Idx1=*/0);
SizesArrayArg = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.Int64Ty, Info.NumberOfPtrs), Info.SizesArray,
/*Idx0=*/0, /*Idx1=*/0);
MapTypesArrayArg = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.Int64Ty, Info.NumberOfPtrs),
Options.ForEndCall && Info.MapTypesArrayEnd ? Info.MapTypesArrayEnd
: Info.MapTypesArray,
/*Idx0=*/0,
/*Idx1=*/0);

// Only emit the mapper information arrays if debug information is
// requested.
if (CGF.CGM.getCodeGenOpts().getDebugInfo() == codegenoptions::NoDebugInfo)
MapNamesArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
else
MapNamesArrayArg = CGF.Builder.CreateConstInBoundsGEP2_32(
llvm::ArrayType::get(CGM.VoidPtrTy, Info.NumberOfPtrs),
Info.MapNamesArray,
/*Idx0=*/0,
/*Idx1=*/0);
// If there is no user-defined mapper, set the mapper array to nullptr to
// avoid an unnecessary data privatization
if (!Info.HasMapper)
MappersArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
else
MappersArrayArg =
CGF.Builder.CreatePointerCast(Info.MappersArray, CGM.VoidPtrPtrTy);
} else {
BasePointersArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
PointersArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
SizesArrayArg = llvm::ConstantPointerNull::get(CGM.Int64Ty->getPointerTo());
MapTypesArrayArg =
llvm::ConstantPointerNull::get(CGM.Int64Ty->getPointerTo());
MapNamesArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
MappersArrayArg = llvm::ConstantPointerNull::get(CGM.VoidPtrPtrTy);
}
}

/// Check for inner distribute directive.
static const OMPExecutableDirective *
getNestedDistributeDirective(ASTContext &Ctx, const OMPExecutableDirective &D) {
@@ -10479,25 +10409,26 @@ void CGOpenMPRuntime::emitTargetCall(
// weren't referenced within the construct.
MEHandler.generateAllInfo(CombinedInfo, MappedVarSet);

TargetDataInfo Info;
CGOpenMPRuntime::TargetDataInfo Info;
// Fill up the arrays and create the arguments.
emitOffloadingArrays(CGF, CombinedInfo, Info, OMPBuilder);
emitOffloadingArraysArgument(
CGF, Info.BasePointersArray, Info.PointersArray, Info.SizesArray,
Info.MapTypesArray, Info.MapNamesArray, Info.MappersArray, Info,
{/*ForEndCall=*/false});
bool EmitDebug =
CGF.CGM.getCodeGenOpts().getDebugInfo() != codegenoptions::NoDebugInfo;
OMPBuilder.emitOffloadingArraysArgument(CGF.Builder, Info.RTArgs, Info,
EmitDebug,
/*ForEndCall=*/false);

InputInfo.NumberOfTargetItems = Info.NumberOfPtrs;
InputInfo.BasePointersArray =
Address(Info.BasePointersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.PointersArray =
Address(Info.PointersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.BasePointersArray = Address(Info.RTArgs.BasePointersArray,
CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.PointersArray = Address(Info.RTArgs.PointersArray, CGF.VoidPtrTy,
CGM.getPointerAlign());
InputInfo.SizesArray =
Address(Info.SizesArray, CGF.Int64Ty, CGM.getPointerAlign());
Address(Info.RTArgs.SizesArray, CGF.Int64Ty, CGM.getPointerAlign());
InputInfo.MappersArray =
Address(Info.MappersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
MapTypesArray = Info.MapTypesArray;
MapNamesArray = Info.MapNamesArray;
Address(Info.RTArgs.MappersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
MapTypesArray = Info.RTArgs.MapTypesArray;
MapNamesArray = Info.RTArgs.MapNamesArray;
if (RequiresOuterTask)
CGF.EmitOMPTargetTaskBasedDirective(D, ThenGen, InputInfo);
else
@@ -11063,7 +10994,8 @@ void CGOpenMPRuntime::emitNumTeamsClause(CodeGenFunction &CGF,

void CGOpenMPRuntime::emitTargetDataCalls(
CodeGenFunction &CGF, const OMPExecutableDirective &D, const Expr *IfCond,
const Expr *Device, const RegionCodeGenTy &CodeGen, TargetDataInfo &Info) {
const Expr *Device, const RegionCodeGenTy &CodeGen,
CGOpenMPRuntime::TargetDataInfo &Info) {
if (!CGF.HaveInsertPoint())
return;

@@ -11087,15 +11019,11 @@ void CGOpenMPRuntime::emitTargetDataCalls(
emitOffloadingArrays(CGF, CombinedInfo, Info, OMPBuilder,
/*IsNonContiguous=*/true);

llvm::Value *BasePointersArrayArg = nullptr;
llvm::Value *PointersArrayArg = nullptr;
llvm::Value *SizesArrayArg = nullptr;
llvm::Value *MapTypesArrayArg = nullptr;
llvm::Value *MapNamesArrayArg = nullptr;
llvm::Value *MappersArrayArg = nullptr;
emitOffloadingArraysArgument(CGF, BasePointersArrayArg, PointersArrayArg,
SizesArrayArg, MapTypesArrayArg,
MapNamesArrayArg, MappersArrayArg, Info);
llvm::OpenMPIRBuilder::TargetDataRTArgs RTArgs;
bool EmitDebug =
CGF.CGM.getCodeGenOpts().getDebugInfo() != codegenoptions::NoDebugInfo;
OMPBuilder.emitOffloadingArraysArgument(CGF.Builder, RTArgs, Info,
EmitDebug);

// Emit device ID if any.
llvm::Value *DeviceID = nullptr;
@@ -11115,12 +11043,12 @@ void CGOpenMPRuntime::emitTargetDataCalls(
llvm::Value *OffloadingArgs[] = {RTLoc,
DeviceID,
PointerNum,
BasePointersArrayArg,
PointersArrayArg,
SizesArrayArg,
MapTypesArrayArg,
MapNamesArrayArg,
MappersArrayArg};
RTArgs.BasePointersArray,
RTArgs.PointersArray,
RTArgs.SizesArray,
RTArgs.MapTypesArray,
RTArgs.MapNamesArray,
RTArgs.MappersArray};
CGF.EmitRuntimeCall(
OMPBuilder.getOrCreateRuntimeFunction(
CGM.getModule(), OMPRTL___tgt_target_data_begin_mapper),
@@ -11137,16 +11065,12 @@ void CGOpenMPRuntime::emitTargetDataCalls(
PrePostActionTy &) {
assert(Info.isValid() && "Invalid data environment closing arguments.");

llvm::Value *BasePointersArrayArg = nullptr;
llvm::Value *PointersArrayArg = nullptr;
llvm::Value *SizesArrayArg = nullptr;
llvm::Value *MapTypesArrayArg = nullptr;
llvm::Value *MapNamesArrayArg = nullptr;
llvm::Value *MappersArrayArg = nullptr;
emitOffloadingArraysArgument(CGF, BasePointersArrayArg, PointersArrayArg,
SizesArrayArg, MapTypesArrayArg,
MapNamesArrayArg, MappersArrayArg, Info,
{/*ForEndCall=*/true});
llvm::OpenMPIRBuilder::TargetDataRTArgs RTArgs;
bool EmitDebug =
CGF.CGM.getCodeGenOpts().getDebugInfo() != codegenoptions::NoDebugInfo;
OMPBuilder.emitOffloadingArraysArgument(CGF.Builder, RTArgs, Info,
EmitDebug,
/*ForEndCall=*/true);

// Emit device ID if any.
llvm::Value *DeviceID = nullptr;
@@ -11166,12 +11090,12 @@ void CGOpenMPRuntime::emitTargetDataCalls(
llvm::Value *OffloadingArgs[] = {RTLoc,
DeviceID,
PointerNum,
BasePointersArrayArg,
PointersArrayArg,
SizesArrayArg,
MapTypesArrayArg,
MapNamesArrayArg,
MappersArrayArg};
RTArgs.BasePointersArray,
RTArgs.PointersArray,
RTArgs.SizesArray,
RTArgs.MapTypesArray,
RTArgs.MapNamesArray,
RTArgs.MappersArray};
CGF.EmitRuntimeCall(
OMPBuilder.getOrCreateRuntimeFunction(
CGM.getModule(), OMPRTL___tgt_target_data_end_mapper),
@@ -11360,27 +11284,28 @@ void CGOpenMPRuntime::emitTargetDataStandAloneCall(
MappableExprsHandler MEHandler(D, CGF);
MEHandler.generateAllInfo(CombinedInfo);

TargetDataInfo Info;
CGOpenMPRuntime::TargetDataInfo Info;
// Fill up the arrays and create the arguments.
emitOffloadingArrays(CGF, CombinedInfo, Info, OMPBuilder,
/*IsNonContiguous=*/true);
bool RequiresOuterTask = D.hasClausesOfKind<OMPDependClause>() ||
D.hasClausesOfKind<OMPNowaitClause>();
emitOffloadingArraysArgument(
CGF, Info.BasePointersArray, Info.PointersArray, Info.SizesArray,
Info.MapTypesArray, Info.MapNamesArray, Info.MappersArray, Info,
{/*ForEndCall=*/false});
bool EmitDebug =
CGF.CGM.getCodeGenOpts().getDebugInfo() != codegenoptions::NoDebugInfo;
OMPBuilder.emitOffloadingArraysArgument(CGF.Builder, Info.RTArgs, Info,
EmitDebug,
/*ForEndCall=*/false);
InputInfo.NumberOfTargetItems = Info.NumberOfPtrs;
InputInfo.BasePointersArray =
Address(Info.BasePointersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.PointersArray =
Address(Info.PointersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.BasePointersArray = Address(Info.RTArgs.BasePointersArray,
CGF.VoidPtrTy, CGM.getPointerAlign());
InputInfo.PointersArray = Address(Info.RTArgs.PointersArray, CGF.VoidPtrTy,
CGM.getPointerAlign());
InputInfo.SizesArray =
Address(Info.SizesArray, CGF.Int64Ty, CGM.getPointerAlign());
Address(Info.RTArgs.SizesArray, CGF.Int64Ty, CGM.getPointerAlign());
InputInfo.MappersArray =
Address(Info.MappersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
MapTypesArray = Info.MapTypesArray;
MapNamesArray = Info.MapNamesArray;
Address(Info.RTArgs.MappersArray, CGF.VoidPtrTy, CGM.getPointerAlign());
MapTypesArray = Info.RTArgs.MapTypesArray;
MapNamesArray = Info.RTArgs.MapNamesArray;
if (RequiresOuterTask)
CGF.EmitOMPTargetTaskBasedDirective(D, ThenGen, InputInfo);
else
@@ -13075,7 +13000,8 @@ void CGOpenMPSIMDRuntime::emitNumTeamsClause(CodeGenFunction &CGF,

void CGOpenMPSIMDRuntime::emitTargetDataCalls(
CodeGenFunction &CGF, const OMPExecutableDirective &D, const Expr *IfCond,
const Expr *Device, const RegionCodeGenTy &CodeGen, TargetDataInfo &Info) {
const Expr *Device, const RegionCodeGenTy &CodeGen,
CGOpenMPRuntime::TargetDataInfo &Info) {
llvm_unreachable("Not supported in SIMD-only mode");
}

Loading