Skip to content

Memoize typetree calls #17

Memoize typetree calls

Memoize typetree calls #17

Triggered via pull request March 19, 2024 16:36
@vchuravyvchuravy
synchronize #1302
vc/typetree
Status Failure
Total duration 1m 16s
Artifacts

Format.yml

on: pull_request
Fit to window
Zoom out
Zoom in

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/.