Memoize typetree calls #16
Annotations
1 error and 2 warnings
format
Process completed with exit code 1.
|
format:
src/rules/typerules.jl#L148
[JuliaFormatter] reported by reviewdog 🐶
Raw Output:
src/rules/typerules.jl:148:- f = LLVM.called_operand(inst)
src/rules/typerules.jl:149:- swiftself = any(any(map(k->kind(k)==kind(EnumAttribute("swiftself")), collect(parameter_attributes(f, i)))) for i in 1:length(collect(parameters(f))))
src/rules/typerules.jl:150:- jlargs = classify_arguments(mi.specTypes, called_type(inst), sret !== nothing, returnRoots !== nothing, swiftself, parmsRemoved)
src/rules/typerules.jl:151:-
src/rules/typerules.jl:152:- seen = TypeTreeTable()
src/rules/typerules.jl:153:-
src/rules/typerules.jl:154:- for arg in jlargs
src/rules/typerules.jl:155:- if arg.cc == GPUCompiler.GHOST || arg.cc == RemovedParam
src/rules/typerules.jl:156:- continue
src/rules/typerules.jl:157:- end
src/rules/typerules.jl:158:-
src/rules/typerules.jl:159:- typ, byref = enzyme_extract_parm_type(f, arg.codegen.i)
src/rules/typerules.jl:160:- @Assert typ == arg.typ
src/rules/typerules.jl:161:-
src/rules/typerules.jl:162:- op_idx = arg.codegen.i
src/rules/typerules.jl:163:- rest = typetree(arg.typ, ctx, dl, seen)
src/rules/typerules.jl:164:- @Assert arg.cc == byref
src/rules/typerules.jl:165:- if byref == GPUCompiler.BITS_REF || byref == GPUCompiler.MUT_REF
src/rules/typerules.jl:166:- rest = copy(rest)
src/rules/typerules.jl:167:- # adjust first path to size of type since if arg.typ is {[-1]:Int}, that doesn't mean the broader
src/rules/typerules.jl:168:- # object passing this in by ref isnt a {[-1]:Pointer, [-1,-1]:Int}
src/rules/typerules.jl:169:- # aka the next field after this in the bigger object isn't guaranteed to also be the same.
src/rules/typerules.jl:170:- if allocatedinline(arg.typ)
src/rules/typerules.jl:171:- shift!(rest, dl, 0, sizeof(arg.typ), 0)
src/rules/typerules.jl:176:+ typ, byref = enzyme_extract_parm_type(f, arg.codegen.i)
src/rules/typerules.jl:177:+ @Assert typ == arg.typ
src/rules/typerules.jl:178:+
src/rules/typerules.jl:179:+ op_idx = arg.codegen.i
src/rules/typerules.jl:180:+ rest = typetree(arg.typ, ctx, dl, seen)
src/rules/typerules.jl:181:+ @Assert arg.cc == byref
src/rules/typerules.jl:182:+ if byref == GPUCompiler.BITS_REF || byref == GPUCompiler.MUT_REF
src/rules/typerules.jl:183:+ rest = copy(rest)
src/rules/typerules.jl:184:+ # adjust first path to size of type since if arg.typ is {[-1]:Int}, that doesn't mean the broader
src/rules/typerules.jl:185:+ # object passing this in by ref isnt a {[-1]:Pointer, [-1,-1]:Int}
src/rules/typerules.jl:186:+ # aka the next field after this in the bigger object isn't guaranteed to also be the same.
src/rules/typerules.jl:187:+ if allocatedinline(arg.typ)
src/rules/typerules.jl:188:+ shift!(rest, dl, 0, sizeof(arg.typ), 0)
src/rules/typerules.jl:189:+ end
src/rules/typerules.jl:190:+ merge!(rest, TypeTree(API.DT_Pointer, ctx))
src/rules/typerules.jl:191:+ only!(rest, -1)
src/rules/typerules.jl:192:+ else
src/rules/typerules.jl:193:+ # canonicalize wrt size
|
format
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: julia-actions/setup-julia@v1. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
|