-
Notifications
You must be signed in to change notification settings - Fork 154
[CIR][LowerToLLVM] Lowered LLVM code for pointer arithmetic should have inbounds #1191
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
Open
liusy58
wants to merge
2,121
commits into
llvm:main
Choose a base branch
from
liusy58:missing_inbounds
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
2121 commits
Select commit
Hold shift + click to select a range
82e4381
[CIR][CIRGen][Builtin][Neon] Lower neon vqadd_v (#890)
ghehg 3798bbb
[CIR][CIRGen][NFC] Split cir.scope creation on buildReturnStmt
bcardosolopes 94da764
[CIR][NFC] Add helpers for cir.try and do some refactoring
bcardosolopes aa62091
[CIR][CIRGen][Builtin] Allow CIRGen for builtin calls with math error…
ghehg ca05983
[CIR][CIRGen] Support __builtin_huge_val for float type (#889)
ghehg 8689e47
[CIR][NFC] Rename test
bcardosolopes b15452f
[CIR][ABI] Apply CC lowering pass by default (#842)
sitio-couto 01f32cf
[CIR][CIRGen][Builtin][Neon] Lower vqrshrun_n and add getAArch64SIMDI…
ghehg 47d527e
[CIR][NFC] Silence unused warning
bcardosolopes 250d9fe
Revert "[CIR][ABI] Apply CC lowering pass by default (#842)"
bcardosolopes f9e4d9c
[CIR][CIRGen] Add time trace to several CIRGen pieces (#898)
ChuanqiXu9 19498ab
[CIR][Dialect] Support OpenCL work group uniformity attribute (#896)
seven-mile baa124b
[CIR][CodeGen][NFC] Rename the confusing `buildGlobal` overload (#897)
seven-mile d3b4375
[CIR][CIRGen][Builtin][Neon] Lower neon vld1_lane and vld1q_lane (#901)
ghehg 5c77fea
[CIR][CodeGen][NFC] Break the missing feature flag for OpenCL into sm…
seven-mile 77c8f56
[CIR][CodeGen] Add `nothrow` for functions in OpenCL languages (#903)
seven-mile 9c6cdb5
[CIR][CodeGen] Set constant properly for global variables (#904)
seven-mile afb76fa
[CIR][Test][NFC] Organize CIR CodeGen AArch64 neon tests (#910)
ghehg fd80c5e
[CIR][Lowering] Fix Global Attr Lowering (#906)
bruteforceboy eb33b81
[CIR][CIRGen][Builtin] Implement builtin __sync_fetch_and_sub (#932)
ghehg 02896b5
[CIR][CIRGen] Cleanup: enable conditional cleanup with exceptions
bcardosolopes 8c41f8d
[CIR][CIRGen][Builtin][Neon] Lower BI__builtin_neon_vmovn_v (#909)
ghehg 4b20937
[CIR][CIRGen][Builtin][Neon] Lower neon vst1q_lane and vst1_lane (#935)
ghehg be0ed7f
[CIR] Derived-to-base conversions (#937)
dkolsen-pgi e106e19
[CIR][NFC] Updates against -Wswitch after rebase
bcardosolopes 3eb30af
[CIR][CIRGen] Exceptions: fix agg store for temporaries
bcardosolopes 796de49
[CIR][CIRGen] Lower cir.throw in absence of dtors
bcardosolopes 7479ff4
[CIR][NFC] Update wrong comments from previous commit
bcardosolopes 7969186
[CIR][CIRGen] Exceptions: support free'ing allocated exception resources
bcardosolopes c95581f
[Lowering][DirectToLLVM] Fix calling variadic functions (#945)
smeenai bc89f0a
[CIR] [CodeGen] Remove NYI in buildPointerWithAlignment (#949)
ChuanqiXu9 8035cd8
[CIR][Lowering] Introduce HoistAllocasPass (#887)
ChuanqiXu9 da4c034
[CIR][CodeGen] Enable -fno-PIE (#940)
bruteforceboy 8e22e66
[CIR][CIRGen] Add support for __fp16 type (#950)
Lancern f299d00
[CIR][CIRGen][Builtin] Support unsigned type for _sync_(bool/val)_com…
ghehg 8bc797b
[CIR][CIRGen][NFC] Improve buildAutoVarAlloca skeleton and add hooks …
bcardosolopes c64cbf7
[CIR][CIRGen] Support annotations on local var decl
bcardosolopes 11b0d25
[CIR][LowerToLLVM][NFC] Move annotation lowering around
bcardosolopes 7d61ee3
[CIR][NFC] Fix post-rebase warning
bcardosolopes a344051
[CIR][LowerToLLVM] Add support for local var annotations
bcardosolopes 8c06e47
Reapply and patch "[CIR][ABI] Apply CC lowering pass by default (#842…
sitio-couto 7b2f5c1
[CIR][CodeGen] kr-style for function arguments (#938)
gitoleg 20ef766
[CIR][CIRGen] Add const attribute to alloca operations (#892)
Lancern b044dda
[CIR][Lowering] VecCreateOp and VecSplatOp lowering choose LLVM:Poiso…
ghehg 7cbc200
[CIR][NFC][Testing] Fix test failure (#963)
ghehg 3a2fc4b
[CIR][CodeGen] Support static references to temporaries
lanza b73d367
[CIR][CIRGen] Support CodeGen for vbase constructors
Laity000 44bcbea
[CIR][CIRGen][Builtin][Neon] Lower neon_vtrn and neon_vtrnq (#942)
ghehg 69dd4d3
[CIR][CIRGen][Builtin][Neon] Lower neon_vext_v and neon_vextq_v (#951)
ghehg 5d0e62b
[CIR][Lowering] Handling Lowering of multiple dimension array correct…
ChuanqiXu9 0668d29
[CIR][CIRGen][Builtin][Neon] Lower vld1_dup and vld1q_dup (#936)
ghehg 1160a8d
[CIR][CIRGen][Builtin][Neon] Lower neon_vpadd_v and neon_vpaddq_v int…
ghehg 5f9b3b8
[CIR] [Lowering] Fix handling of multiple array for ZeroAttr (#970)
ChuanqiXu9 cb888fa
[CIR][Driver] Fix -fclangir-call-conv-lowering behavior
bcardosolopes 7c851c3
[CIR] Add more user facing messages for -fno-clangir-call-conv-lowering
bcardosolopes 55f6776
[CIR] Make the asserts to display suggestion for -fno-clangir-call-co…
bcardosolopes dd9423f
[CIR][NFC] Massively rename workarounds for callconv lowering
bcardosolopes 761c564
[CIR][CIRGen] Implement CIRGenModule::shouldEmitFunction (#984)
smeenai efd641c
[CIR][CIRGen] Port 1d0bd8e51be2627f79bede54735c38b917ea04ee (#983)
smeenai 8a12125
[CIR][LowerToLLVM] Lower cir.vtt.address_point
bcardosolopes 26a1cae
[CIR][NFC] Rename function in a test
bcardosolopes d8fc11b
[CIR][CIRGen] Get more vtable and dtor working
bcardosolopes 1091422
[CIR][CIRGen][NFC] Consolidate RUN lines for builtin tests (#968)
ghehg 11cbb68
[CIR] [Lowering] care trailing zero for lowering constant array (#976)
ChuanqiXu9 ecb9cc5
[CIR] Add support for __int128 type (#980)
Lancern bafe969
[CIR][CIRGen][Builtin][Neon] Lower neon_vrshrn_n to llvm intrinsic ca…
ghehg 526f3b7
[CIR][CIRGen][Builtin][Neon] Lower vqdmulhq_lane, vqdmulh_lane, vqrdm…
ghehg 73a42c7
[CIR][CIRGen][Builtin][Type] Support for IEEE Quad (long double) adde…
mvvsmk 4183dde
[CIR][NFC] Fix some consistency issues with missing features
bcardosolopes 784750e
[CIR] Disable `-fclangir-call-conv-lowering` from default in the LLVM…
bcardosolopes 0522f59
[CIR][CIRGen][Builtin] Implement builtin addressof (#987)
ghehg f6f02d1
[CIR][NFC] Improve documentation about goto's
bcardosolopes cb384db
[CIR][NFC] Move code around to match OG
bcardosolopes 8c92d88
[CIR][CIRGen][NFC] Add more skeleton for handling inheritance ctors
bcardosolopes da80c19
[CIR][CIRGen] Ensure default visibility for local linkage functions (…
smeenai 030630b
[CIR][CIRGen][Builtin][Neon] Lower neon_vshl_n_v and neon_vshlq_n_v (…
ghehg 622f498
[CIR][CIRGen] Use Clang Codegen's skeleton in CIRGenFunction::buildBu…
ghehg 85e47c1
[CIR][CIRGen][Builtin][Neon] Lower neon_vqaddq_v, neon_vqsubq and neo…
ghehg 9415d8a
[CIR][CIRGen][Builtin][Neon] Lower neon_vmovl_v (#989)
ghehg dbddba6
[CIR][CIRGen] Support initial cases of inheritance ctor/dtor
bcardosolopes c6ae220
[CIR][CIRGen] Null init some inheritance components
bcardosolopes da31d2c
[CIR][CIRGen][NFC] More skeleton for building constants
bcardosolopes 862ca6c
[CIR][CIRGen] Add missing testcase for null base class
bcardosolopes e953ba7
[CIR] [CodeGen] Introduce IsFPClassOp to support builtin_isfpclass (#…
ChuanqiXu9 569d798
[CIR][NFC] Move callconv tests around
bcardosolopes 0922f49
[CIR][Asm] Implement parser for cir.func annotations (#981)
keryell 13fd66d
[CIR][CIRGen][Builtin][Neon] Lower neon_vabd_v and neon_vabdq_v (#996)
ghehg 9b5694b
[CIR][CIRGen][Builtin][Neon] Lower neon_vmull_v (#998)
ghehg 03041b1
[CIR][CIRGen][Builtin][Neon] Lower neon_vrhadd_v and neon_vrhaddq_v (…
ghehg 479202d
[CIR][CIRGen][Builtin][Neon] Lower neon_vmin_v and neon_vminq_v (#1000)
ghehg c4d9214
[CIR][Transforms] Fix CallConv Function Lowering (#979)
bruteforceboy 56ef01a
[CIR][CIRGen][Lowering] Use same set of annotation-related global var…
ghehg 259bcfe
[CIR][CodeGen][NFC] Cleanup CIRGenFunction::StartFunction to match OG…
lanza 9c86b7f
[ClangIR][Lowering] Handle lowered array index (#1008)
ChuanqiXu9 a5b40e8
[CIR][CIRGen] Removed extra space in "cir.shift( right)" (#997) (#1009)
MarcoCalabretta 97295ae
[CIR][CIRGen][Builtin][Neon] Lower neon_vshll_n (#1010)
ghehg 231bc8d
[ClangIR][CIRGen] Introduce CaseOp and refactor SwitchOp (#1006)
ChuanqiXu9 2baf388
[CIR][ABI][AArch64][Lowering] Initial support for return of struct ty…
gitoleg 2cecfae
[CIR][Lowering] Supports varargs in the CallingConvention pass (#1005)
gitoleg a920a61
[CIR][CodeGen][NFC] Add some missing guards for unreachable
lanza 6f3b350
[CIR][CodeGen] Store the old CIRGenFunction when popping to a new one
lanza 7882ad4
[CIR][CodeGen][NFC] Implement a missing function
lanza 8325970
[CIR][ABI][Lowering] Supports function pointers in the calling conven…
gitoleg 2fe7d89
[CIR][CIRGen][Builtin][Neon] Lower neon_vqmovun_v (#1012)
ghehg 453385a
[CIR][CIRGen] Enable comdat for static variables (#1015)
ghehg 25a5d40
[CIR][CIRGen] Fix "definition with same mangled name" error (#1016)
smeenai e6941d4
[CIR][CIRGen][Builtin][Neon] Lower neon_vrshr_n and vrshrq_n to llvm …
ghehg b1baa53
[CIR][Dialect][NFC] Fix double whitespaces in `cir.func` assembly (#1…
seven-mile 2d29490
[CIR][CIRGen] Add support for abs (#1011)
PikachuHyA a9e0ca9
[CIR][Lowering] Transform cir.store of const arrays into cir.copy
bcardosolopes 12ec494
[CIR][CIRGen] Fix typo in test check
smeenai d54d414
[CIR][CIRGen] Fix swapped parameters in test
smeenai f55ceac
[CIR][CIRGen][Builtin][Neon] Lower neon_vtst_v and neon_vtstq_v (#1013)
ghehg ce830e8
[CIR][CIRGen] Add support for memmove (#1019)
PikachuHyA 055976b
[CIR][ABI][AArch64] support for return struct types greater than 128 …
gitoleg 0921486
[CIR][ABI][Lowering] Supports call by function pointer in the calling…
gitoleg db98348
[CIR][CIRGen][Builtin] Support BI__builtin_operator_new and BI__built…
ghehg c777b0f
[CIR][ABI][Lowering] Add CCLower support for int128 on x86_64 (#1036)
Lancern fcca3e5
[CIR][CIRGen][Builtin][Neon] Lower neon_vqshlu_n and neon_vqshluq_n (…
ghehg c7370e6
[CIR][CIRGen] Support more member init variations
bcardosolopes ed9c32c
[Driver] Bring back -emit-cir as a frontend option
lanza a4d1036
[CIR] Add a cir.undef attr
smeenai e331781
[CIR][CIRGen] Scalar emission for casts of base to derived
bcardosolopes ec9a4eb
[CIR][CIRGen] Fix const codegen for empty struct
smeenai ca5879d
[CIR][CIRGen][Builtin][Neon] Lower neon_vhadd_v and neon_vhaddq_v (#1…
ghehg 3fd09f2
[CIR][CIRGen][Builtin][Neon] Lower neon_vshrn_n_v (#1040)
ghehg 4943da4
[CIR][NFC] Remove leftovers from previous commit
bcardosolopes 9e7b590
[CIR][LowerToLLVM] Fold base address computation if offset is zero
bcardosolopes 7b06c72
[CIR][CIRGen][Builtin][Neon] Lower neon_vshlq_v (#1042)
ghehg 8e74189
Remove disablement of Wdeprecated-declarations
lanza acc80e5
[CIR][CIRGen] Add support for memset (#1026)
PikachuHyA c6fb5ba
[CIR][CIRGen][Builtin][Neon] Lower neon_vshr_n_v and neon_vshrq_n_v (…
ghehg fb35ec0
[ClangIR][CIRGen] Handle nested union in arrays of struct (#1007)
ChuanqiXu9 76e4405
[CIR][NFC] Fix warnings post rebase and some pre-existing ones
bcardosolopes d8e3753
[CIR][CIRGen] Support __builtin___memcpy_chk (#1032)
smeenai 2b7f643
[CIR][CIRGen] Support __builtin___memset_chk (#1053)
smeenai ee9871a
[CIR][CIRGen] Emit required vtables (#1054)
smeenai 7e20d84
[CIR][CodeGen][NFC] Add `getMLIRContext` to CIRGenModule
lanza 470d2a0
[CIR][Dialect][NFC] Add some helpers to LoadOp
lanza b62e02a
[CIR][ABI][AArch64][Lowering] Initial support for passing struct type…
gitoleg 374b548
[CIR][ABI][AArch64] convers aarch64_be return struct case (#1049)
gitoleg 26e030f
[CIR][CIRGen][Builtin][NFC] Refactor IntrinsicCallOp (#1056)
ghehg ad29a18
[CIR][CIRGen][Builtin] Support __builtin_char_memchr (#1050)
ghehg 7f04228
[CIR] fix getTypeSizeInBits with fp80 and fp128 (#1058)
PikachuHyA 1339049
[CIR][ABI][Lowering] covers return struct case with coercion through …
gitoleg 7fe15c9
[CIR][CIRGen][Builtin][Neon] Lower neon_vqrdmulh_v and neon_vqrdmulhq…
ghehg d62d629
[CIR][CIRGen][Builtin][Neon] Lower neon_vpaddl and neon_vpaddlq (#1064)
ghehg 3998d0c
[CIR][Lowering] Add LLVM lowering support for cir.assume (#1066)
Lancern 3fe6687
[CIR][CodeGen] Fix the default linkage of string literals (#1067)
seven-mile e8cadf7
[CIR][ABI][AArch64][Lowering] support for passing struct types > 128 …
gitoleg de0c2dc
[CIR][CIRGen] Add aliases for virtual dtors calls
bcardosolopes fccf9c2
[CIR][NFC] Fix unused warning
bcardosolopes fa657ba
[CIR][CodeGen] Use the same SSA name as OG's for string literals (#1073)
seven-mile 9fc9c35
[CIR] Make X86ArgClass an `enum class` (#1080)
smeenai 4371510
[CIR][CIRGen] Fix some alias issues under -O1 and above
bcardosolopes 1038560
[CIR][NFC] Add more checks and notes for virtual-destructor-calls.cpp…
bcardosolopes 4a7fd6f
[CIR][NFC] Update test comment
bcardosolopes 3d2c01d
[CIR][NFC] More comments removed for ir differences
bcardosolopes 2834149
Revert "[CIR] fix getTypeSizeInBits with fp80 and fp128" (#1089)
PikachuHyA dae0c5b
[CIR][CIRGen][Builtin] Support __builtin_return_address (#1046)
ghehg f7bcc45
[CIR] Extend support for floating point attributes (#572)
orbiri 47c29dd
[CIR][CIRGen][Builtin][Neon] Lower neon_vqmovn_v (#1071)
ghehg 0c97f55
[CIR][CIRGen][Builtin][Neon] Lower neon_vaesmcq_u8 (#1072)
ghehg e909adc
[CIR][CIRGen] Move CIRGen types into clang::CIRGen (#1082)
smeenai 1a6bdd3
[CIR][ABI][AArch64][Lowering] Support unions (#1075)
bruteforceboy 3707a72
[CIR] Merge the mlir::cir namespace into cir (#1084)
smeenai 83db253
[CIR] Merge two copies of CIRGenAction.h (#1085)
smeenai 4eb06c7
[CIR][NFC] Expand doc on `cir.scope` terminators (#1078)
HerrCai0907 0ac7b11
[CIR][CIRGen][Builtin][Neon] Lower neon_vqdmulhq_v, neon_vqdmulh_v (#…
ghehg 4718df5
[CIR][CIRGen] Change buildX functions to emitX (#1093)
smeenai ebed4b7
[CIR][NFC] Move LoweringPrepare into CIRGen (#1092)
lanza c25e447
[CIR][CodeGen][LowerToLLVM] String literals for OpenCL (#1091)
seven-mile 6bf94fe
Revert "[CIR][NFC] Move LoweringPrepare into CIRGen (#1092)"
bcardosolopes 0b63ccd
[CIR][CIRGen] support builtin signbit (#1033)
PikachuHyA f2ccc39
[CIR][CIRGen][Builtin] Support __builtin_memcpy_inline (#1069)
ghehg d4e2be6
[CIR][CIRGen][Builtin] Support __sync_add_and_fetch (#1077)
ghehg b4a40d0
[CIR][CodeGen][NFC] Simplify replacing initializer of static decls (#…
seven-mile ff8c15c
[CIR][Dialect][NFC] Fix double white spaces in `cir.global` assembly …
seven-mile 17aef13
[CIR] Properly ensure terminating IfOp and ScopeOp regions (#1097)
orbiri 4524501
[CIR][CIRGen][Builtin][Neon] Lower neon_vhsub_v, neon_vhsubq_v (#1103)
ghehg b409ca9
[CIR][NFC] Fix formatting (#1105)
smeenai 87dc8c3
[CIR][NFC] Conform if/else lowering order to match clang's output (#1…
orbiri cc2c767
[CIR] [Lowering] [X86_64] Support VAArg in shape (#1100)
ChuanqiXu9 776a709
[CIR][CIRGen][Builtin][Neon] Lower neon_vqdmlal, neon_vqdmlsl (#1104)
ghehg 30f1701
[CIR][ABI][AArch64] Support struct passing with coercion through memo…
gitoleg 3f41317
[CIR][CIRGen][Builtin][Neon] Lower neon_vaeseq_u8 (#1112)
ghehg 61440d5
[CIR][CIRGen][Builtin] Support __builtin_wmemchr (#1115)
ghehg 47a5936
[CIR][CIRGen] Support __builtin_signbitl (#1117)
PikachuHyA 00c96c4
[CIR][Dialect][NFC] Refactor hardcoded attribute name strings (#1122)
seven-mile f54457b
[CIR][ABI][Lowering] Fixes calls with union type (#1119)
gitoleg 462f155
[CIR][Builtin][NFC] More informative llvm_unreachable message in CIRG…
ghehg 9ec869b
[CIR][CIRGen][Builtin][Neon] Lower vcvt_f32_v, vcvtq_f32_v (#1120)
ghehg ec2e575
[CIR][LowerToLLVM] Lowering triple from `cir.triple` attribute (#1125)
seven-mile 278aad0
[CIR][ABI][AArch64][Lowering] Support calls for struct types > 128 bi…
bruteforceboy 53d3562
[CIR][CIRGen][Builtin] Support __builtin_elementwise_abs and extend A…
ghehg 887b109
[ClangIR][Lowering][NFC] Split LowerToLLVM.h from LowerToLLVM.cpp (#1…
ChuanqiXu9 95a65b6
[CIR][CIRGen][Builtin][Neon] Lower neon_splat_lane, neon_splat_laneq…
ghehg f74e7ba
[CIR][CIRGen][Builtin] Support __builtin___memmove_chk (#1106)
ghehg 72dc06c
[CIR][CIRGen] Support for visual bases in getAddressOfBaseClass
bcardosolopes 663f0d2
[CIR][NFC] Fix unused variable warning
bcardosolopes fbeba10
[CIR][CIRGen] Bring getAddressOfBaseClass a bit closer to OG
bcardosolopes 78c5af8
[CIR][CIRGen][NFC] More unification of virtual and non-virtual offset…
bcardosolopes 87b366b
[CIR][CIRGen][NFC] More skeleton conformance
bcardosolopes 94dd02f
[CIR][CIRGen] Teach all uses of ApplyNonVirtualAndVirtualOffset to us…
bcardosolopes 5f0c55d
[CIR] Force cir.cmp to always return bool (#1110)
orbiri 7170758
[CIR][CIRGen] Support __builtin_memset_inline (#1114)
PikachuHyA 0a5ea8e
[CIR][CIRGen][TBAA] Initial TBAA support (#1116)
PikachuHyA 4b5fd68
[CIR][ABI][AArch64][Lowering] Support structures with padding (#1118)
bruteforceboy 3739dd8
[CIR] fix deref nullptr when verify symbol for `cir.get_global` (#1143)
HerrCai0907 8c95ff5
[CIR][NFC] Refactor code for populating LLVM conversion patterns (#1152)
Lancern dfff479
[CIR][Dialect] Extend UnaryFPToFPBuiltinOp to vector of FP type (#1132)
ghehg 40661fb
[CIR][Builtin][Neon][NFC] Introduce skeleton of emitCommonNeonSISDBui…
ghehg b0fdf3d
[CIR][CIRGen][Builtin][Neon] Lower neon_vqshrn_n_v (#1144)
ghehg a04cf10
[CIR][FlattenCFG] Let results of CIR ScopeOp forwarded during Flatten…
ghehg a223ec2
[CIR][Transforms][NFC] Fix undesirable include of clang's private hea…
seven-mile 9b73052
[CIR][NFC] move data member pointer lowering to CXXABI (#1130)
Lancern 0ace889
[CIR][AArch64][Lowering] Support fields with structs containing const…
bruteforceboy c1f1871
[CIR][CIRGen][Builtin] Support __builtin_frame_address (#1137)
ghehg 9ded4f6
[CIR][ABI][AArch64][Lowering] support for calling struct types in ran…
bruteforceboy 1863ab5
[CIR][CIRGen][Builtin] Support builtin __sync_sub_and_fetch (#1146)
ghehg 03bb2e0
[CIR][CIRGen][Builtin][Neon] Lower neon_vpadal_v, neon_vpadalq_v (#1148)
ghehg 2a95651
[CIR] [Lowering] [X86_64] Support VAArg for LongDouble (#1150)
ChuanqiXu9 96dd61c
[CIR][CIRGen][Builtin][Neon] Lower neon_vrshl_v and neon_vrshlq_v (#1…
ghehg 38e93ed
[CIR][CIRGen] Fix a stack-use-after-free (#1155)
smeenai 3fbb13e
[CIR][Dialect][NFC] Remove redundant module attribute `llvm.data_layo…
seven-mile 550ccbd
[CIR][CIRGen][Builtin][Neon] Lower neon_vqrshrn_n_v (#1161)
ghehg f00568c
[CIR][TargetLowering] Fix use iteration (#1162)
smeenai 9db508a
[CIR][FlattenCFG] Fix rewrite API misuse (#1163)
smeenai 41078e9
[CIR][CIRGen][Builtin][Neon] Lower neon_vabs_v and neon_vabsq_v (#1081)
ghehg a18db3c
[CIR][CIRGen][Builtin] Support __builtin_launder except in the case o…
ghehg 2cec820
[CIR][CIRGen] Support copy constructors with non-record arrays (#1165)
smeenai 7532e05
[CIR][Dialect] Introduce StdInitializerListOp to represent high-level…
HerrCai0907 e8cdbc1
[CIR][CIRGen][Builtin][Neon] Lower __builtin_neon_vshl_v (#1134)
ghehg 2968396
[CIR] Correct signedness for createSignedInt (#1167)
ChuanqiXu9 2b03d94
[CIR] Relax the requirement for ternary operation (#1168)
ChuanqiXu9 676b861
[CIR][ABI][AArch64][Lowering] Fix the callsite for nested unions (#1169)
bruteforceboy 70a2723
[CIR][NFC][Test] Add llvm ir test for lambdas (#1170)
ghehg ffa0c9e
[CIR][CIRGen] Add more tracking skeleton for missing cleanups
bcardosolopes 7c8ffe9
[CIR][NFC] Cleanup warnings post rebase
bcardosolopes 1b052da
[CIR][Lowering][debuginfo] Disable debug info if `-g` is not specifie…
PikachuHyA c04a964
[CIR] Remove InavalidUnionFieldAttr and remove a check in array attr …
ChuanqiXu9 fb77b51
[CIR][Dialect] Extend BinaryFPToFPBuiltinOp to vector of FP type (#1173)
ghehg cb4c940
[CIR][CIRGen][Builtin] Support __builtin_elementwise_abs with vector …
ghehg 8dc68cd
[CIR][CIRGen][Builtin][Neon] Lower SISD neon_vqrdmulhs_s32 (#1175)
ghehg 888f00c
[CIR][CIRGen][Builtin][Neon] Lower neon_vaddlvq_u16 (#1176)
ghehg aa7b5c6
[CIR][CIRGen] Change SignBitOp result type to !cir.bool (#1187)
PikachuHyA 7cbfe8e
[CIR] Add code generation options to lowering context (#1171)
Lancern 67bbd1e
[CIR] [CodeGen] Handle arrangeCXXStructorDeclaration (#1179)
ChuanqiXu9 eacaabb
[CIR] Add support for casting pointer-to-data-member values (#1188)
Lancern 0362c64
[CIR][LowerToLLVM] fixup! CIR generated LLVM code for pointer arithme…
liusy58 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
[CIR][CIRGen] Scalar emission for casts of base to derived
- Loading branch information
commit e331781ba8ccf3a19c268ed6d392cd3c3a96f7b4
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
// RUN: %clang_cc1 -triple aarch64-none-linux-android21 -fclangir -emit-cir %s -o %t.cir | ||
// RUN: FileCheck --check-prefix=CIR --input-file=%t.cir %s | ||
// RUN: %clang_cc1 -triple aarch64-none-linux-android21 -fclangir -emit-llvm -fno-clangir-call-conv-lowering %s -o %t.ll | ||
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s | ||
|
||
class A { | ||
int a; | ||
}; | ||
|
||
class B { | ||
int b; | ||
public: | ||
A *getAsA(); | ||
}; | ||
|
||
class X : public A, public B { | ||
int x; | ||
}; | ||
|
||
A *B::getAsA() { | ||
return static_cast<X*>(this); | ||
|
||
// CHECK-LABEL: define{{.*}} ptr @_ZN1B6getAsAEv | ||
// CHECK: %[[THIS:.*]] = load ptr, ptr | ||
// CHECK-NEXT: getelementptr inbounds i8, ptr %[[THIS]], i64 -4 | ||
} | ||
|
||
// CIR-LABEL: @_ZN1B6getAsAEv | ||
// CIR: %[[VAL_1:.*]] = cir.alloca !cir.ptr<!ty_B>, !cir.ptr<!cir.ptr<!ty_B>>, ["this", init] {alignment = 8 : i64} | ||
// CIR: %[[VAL_2:.*]] = cir.alloca !cir.ptr<!ty_A>, !cir.ptr<!cir.ptr<!ty_A>>, ["__retval"] {alignment = 8 : i64} | ||
// CIR: %[[VAL_3:.*]] = cir.load %[[VAL_1]] : !cir.ptr<!cir.ptr<!ty_B>>, !cir.ptr<!ty_B> | ||
// CIR: %[[VAL_4:.*]] = cir.derived_class_addr(%[[VAL_3]] : !cir.ptr<!ty_B> nonnull) [4] -> !cir.ptr<!ty_X> | ||
// CIR: %[[VAL_5:.*]] = cir.base_class_addr(%[[VAL_4]] : !cir.ptr<!ty_X>) [0] -> !cir.ptr<!ty_A> | ||
// CIR: cir.store %[[VAL_5]], %[[VAL_2]] : !cir.ptr<!ty_A>, !cir.ptr<!cir.ptr<!ty_A>> | ||
// CIR: %[[VAL_6:.*]] = cir.load %[[VAL_2]] : !cir.ptr<!cir.ptr<!ty_A>>, !cir.ptr<!ty_A> | ||
// CIR: cir.return %[[VAL_6]] : !cir.ptr<!ty_A> | ||
|
||
// LLVM-LABEL: @_ZN1B6getAsAEv | ||
// LLVM: %[[VAL_1:.*]] = alloca ptr, i64 1, align 8 | ||
// LLVM: store ptr %[[VAL_2:.*]], ptr %[[VAL_0:.*]], align 8 | ||
// LLVM: %[[VAL_3:.*]] = load ptr, ptr %[[VAL_0]], align 8 | ||
// LLVM: %[[VAL_4:.*]] = getelementptr i8, ptr %[[VAL_3]], i32 -4 | ||
// LLVM: %[[VAL_5:.*]] = icmp eq ptr %[[VAL_4]], null, | ||
// LLVM: %[[VAL_6:.*]] = getelementptr i8, ptr %[[VAL_4]], i32 0, | ||
// LLVM: %[[VAL_7:.*]] = select i1 %[[VAL_5]], ptr %[[VAL_4]], ptr %[[VAL_6]], |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.