WIP: aclcur #8

Draft
dalmurii wants to merge 13 commits from aclcur into master
Owner

THIS SHOULD BE MARKED AS A REMINDER HOW A CHANGE OF REQUIREMENTS COULD COST

jokes aside:
make middleware which is VERY similar to spir-v to make emission more dynamic without copying ALL blocks while pushing middle-where of emission buffer.
after this, aclcur is expected to have responsibility to emit the final function implementation block.

function declaration & function signature emit handling will be also changed.
function parameters will now be handled by aclcur reg explicitly, while signature would be handled differently somewhere.

# THIS SHOULD BE MARKED AS A REMINDER HOW A CHANGE OF REQUIREMENTS COULD COST jokes aside: make middleware which is VERY similar to spir-v to make emission more dynamic without copying ALL blocks while pushing middle-where of emission buffer. after this, aclcur is expected to have responsibility to emit the final function implementation block. function declaration & function signature emit handling will be also changed. function parameters will now be handled by aclcur reg explicitly, while signature would be handled differently somewhere.
On branch aclcur
 Changes to be committed:
	- modified:   CMakeLists.txt
	- modified:   inc/aclspv.h
	- modified:   lib/aclconst/specop.c
	- modified:   lib/aclconst/specop.h
	- new file:   lib/aclcur.h
	- new file:   lib/aclcur/class.h
	- new file:   lib/aclcur/common.c
	- new file:   lib/aclcur/common.h
	- new file:   lib/aclcur/flag0.h
	- new file:   lib/aclcur/j.c
	- new file:   lib/aclcur/j.h
	- new file:   lib/aclcur/j/emit.c
	- new file:   lib/aclcur/j/emit.h
	- new file:   lib/aclcur/jc.c
	- new file:   lib/aclcur/jc.h
	- new file:   lib/aclcur/jc/emit.c
	- new file:   lib/aclcur/jc/emit.h
	- new file:   lib/aclcur/lbl.c
	- new file:   lib/aclcur/lbl.h
	- new file:   lib/aclcur/lbl/dfs.c
	- new file:   lib/aclcur/lbl/dfs.h
	- new file:   lib/aclcur/lbl/emit.c
	- new file:   lib/aclcur/lbl/reach.c
	- new file:   lib/aclcur/lbl/reach.h
	- new file:   lib/aclcur/load.c
	- new file:   lib/aclcur/load.h
	- new file:   lib/aclcur/phi.c
	- new file:   lib/aclcur/phi.h
	- new file:   lib/aclcur/reg.c
	- new file:   lib/aclcur/reg.h
	- new file:   lib/aclcur/ret.h
	- new file:   lib/aclcur/store.c
	- new file:   lib/aclcur/store.h
	- new file:   lib/aclcur/util.h
	- deleted:    lib/aclcursor.c
	- deleted:    lib/aclcursor.h
	- deleted:    lib/aclcursor/decl.h
	- deleted:    lib/aclcursor/def.h
	- deleted:    lib/aclcursor/phi.h
	- deleted:    lib/aclcursor/vardecl.c
	- deleted:    lib/aclcursor/vardecl.h
	- deleted:    lib/aclcursor/vardecl/assign.c
	- deleted:    lib/aclcursor/vardecl/phi.c
	- modified:   lib/aclemit/body.c
	- modified:   lib/aclemit/fndecl/entp/args.c
	- modified:   lib/aclemit/fndecl/entp/cfg.c
	- modified:   lib/aclexpr/arithmetic_cast.c
	- modified:   lib/aclexpr/beforevisit/bool1.c
	- modified:   lib/aclexpr/carve/op2/bool0.c
	- modified:   lib/aclexpr/visit.c
	- modified:   lib/aclexpr/visit/simple.h
	- modified:   lib/aclmem.h
	- modified:   lib/aclty/by_cursor.c
	- modified:   lib/aclty/by_type.c
	- modified:   lib/aclty/struct/mbr.c
	- modified:   lib/aclty/vec.c
	- modified:   lib/aclty/vec.h
	- new file:   lib/aclutil/emitx.h
	- new file:   lib/aclutil/op.h
	- modified:   lib/ctx/conf.h
	- modified:   lib/ctx/init_fini.c
	- modified:   lib/util/capability.h
	- modified:   lib/util/constant.c
	- modified:   lib/util/constant.h
	- deleted:    lib/util/constant/alias.c
	- deleted:    lib/util/constant/ptr.c
	- modified:   lib/util/constant/repvec.c
	- modified:   lib/util/constant/spec.c
	- modified:   lib/util/emitx.h
	- modified:   lib/util/fn.h
	- modified:   lib/util/fnctx/defs.h
	- modified:   lib/util/iddef.c
	- modified:   lib/util/literal.h
	- modified:   lib/util/op.h
	- modified:   lib/util/vec.c
	- modified:   src/lib/body/vardecl.c
	- modified:   test/inc/acltest/compile.h
- lib/util/constant/alias.c

 Changes to be committed:
	- modified:   CMakeLists.txt
	- modified:   inc/aclspv.h
	- modified:   lib/aclconst/specop.c
	- modified:   lib/aclconst/specop.h
	- new file:   lib/aclcur.h
	- new file:   lib/aclcur/class.h
	- new file:   lib/aclcur/common.c
	- new file:   lib/aclcur/common.h
	- new file:   lib/aclcur/flag0.h
	- new file:   lib/aclcur/j.c
	- new file:   lib/aclcur/j.h
	- new file:   lib/aclcur/j/emit.c
	- new file:   lib/aclcur/j/emit.h
	- new file:   lib/aclcur/jc.c
	- new file:   lib/aclcur/jc.h
	- new file:   lib/aclcur/jc/emit.c
	- new file:   lib/aclcur/jc/emit.h
	- new file:   lib/aclcur/lbl.c
	- new file:   lib/aclcur/lbl.h
	- new file:   lib/aclcur/lbl/dfs.c
	- new file:   lib/aclcur/lbl/dfs.h
	- new file:   lib/aclcur/lbl/emit.c
	- new file:   lib/aclcur/lbl/reach.c
	- new file:   lib/aclcur/lbl/reach.h
	- new file:   lib/aclcur/load.c
	- new file:   lib/aclcur/load.h
	- new file:   lib/aclcur/load/get.c
	- new file:   lib/aclcur/load/get.h
	- new file:   lib/aclcur/op1.h
	- new file:   lib/aclcur/phi.c
	- new file:   lib/aclcur/phi.h
	- new file:   lib/aclcur/reg.c
	- new file:   lib/aclcur/reg.h
	- new file:   lib/aclcur/ret.c
	- new file:   lib/aclcur/ret.h
	- new file:   lib/aclcur/ret/emit.c
	- new file:   lib/aclcur/ret/emit.h
	- new file:   lib/aclcur/store.c
	- new file:   lib/aclcur/store.h
	- new file:   lib/aclcur/util.h
	- deleted:    lib/aclcursor.c
	- deleted:    lib/aclcursor.h
	- deleted:    lib/aclcursor/decl.h
	- deleted:    lib/aclcursor/def.h
	- deleted:    lib/aclcursor/phi.h
	- deleted:    lib/aclcursor/vardecl.c
	- deleted:    lib/aclcursor/vardecl.h
	- deleted:    lib/aclcursor/vardecl/assign.c
	- deleted:    lib/aclcursor/vardecl/phi.c
	- modified:   lib/aclemit/body.c
	- modified:   lib/aclemit/fndecl/body.c
	- modified:   lib/aclemit/fndecl/entp.c
	- modified:   lib/aclemit/fndecl/entp/args.c
	- modified:   lib/aclemit/fndecl/entp/cfg.c
	- modified:   lib/aclexpr/arithmetic_cast.c
	- modified:   lib/aclexpr/beforevisit/bool1.c
	- modified:   lib/aclexpr/carve/op2/bool0.c
	- modified:   lib/aclexpr/visit.c
	- modified:   lib/aclexpr/visit/simple.h
	- modified:   lib/aclmem.h
	- modified:   lib/aclty/by_cursor.c
	- modified:   lib/aclty/by_type.c
	- modified:   lib/aclty/struct/mbr.c
	- modified:   lib/aclty/vec.c
	- modified:   lib/aclty/vec.h
	- new file:   lib/aclutil/emitx.h
	- new file:   lib/aclutil/op.h
	- modified:   lib/ctx/conf.h
	- modified:   lib/ctx/init_fini.c
	- modified:   lib/util/capability.h
	- modified:   lib/util/constant.c
	- modified:   lib/util/constant.h
	- deleted:    lib/util/constant/alias.c
	- deleted:    lib/util/constant/ptr.c
	- modified:   lib/util/constant/repvec.c
	- modified:   lib/util/constant/spec.c
	- modified:   lib/util/emitx.h
	- modified:   lib/util/fn.h
	- modified:   lib/util/fnctx/defs.h
	- modified:   lib/util/iddef.c
	- modified:   lib/util/literal.h
	- modified:   lib/util/op.h
	- modified:   lib/util/vec.c
	- modified:   src/lib/body/vardecl.c
	- modified:   test/inc/acltest/compile.h
Changes to be committed:
	- modified:   lib/aclcur/load.c
	- modified:   lib/aclcur/load/get.c
	- modified:   lib/aclcur/reg.c
	- modified:   lib/aclcur/reg.h
	- modified:   lib/aclcur/store.c
add: operation emitter
fix: too strict pointer element requirement (that should have been primitive)

 Changes to be committed:
	- modified:   lib/aclconst/specop.c
	- modified:   lib/aclcur/class.h
	- modified:   lib/aclcur/common.h
	- modified:   lib/aclcur/load/get.c
	- new file:   lib/aclcur/op.h
	- new file:   lib/aclcur/op/emit.c
	- new file:   lib/aclcur/op/emit.h
	- new file:   lib/aclcur/op1.c
	- deleted:    lib/aclcur/op1.h
	- modified:   lib/aclcur/reg.h
	- modified:   lib/aclty/ptr.c
	- modified:   lib/aclutil/op.h
Changes to be committed:
	- modified:   lib/aclcur/op.h
	- modified:   lib/aclcur/op1.c
	- new file:   lib/aclcur/op2.c
	- modified:   lib/aclutil/op.h
Changes to be committed:
	- modified:   CMakeLists.txt
	- modified:   inc/aclspv.h
	- modified:   lib/aclcur/class.h
	- modified:   lib/aclcur/common.c
	- modified:   lib/aclcur/common.h
	- new file:   lib/aclcur/emit.c
	- new file:   lib/aclcur/emit.h
	- modified:   lib/aclcur/jc.c
	- modified:   lib/aclcur/jc.h
	- modified:   lib/aclcur/jc/emit.c
	- modified:   lib/aclcur/lbl.c
	- modified:   lib/aclcur/lbl.h
	- modified:   lib/aclcur/lbl/dfs.c
	- modified:   lib/aclcur/lbl/emit.c
	- modified:   lib/aclcur/load.c
	- modified:   lib/aclcur/load.h
	- modified:   lib/aclcur/load/get.c
	- modified:   lib/aclcur/op.h
	- modified:   lib/aclcur/op1.c
	- modified:   lib/aclcur/op2.c
	- new file:   lib/aclcur/op3.c
	- new file:   lib/aclcur/opX.c
	- new file:   lib/aclcur/opX.h
	- new file:   lib/aclcur/opX/emit.c
	- new file:   lib/aclcur/opX/emit.h
	- modified:   lib/aclcur/phi.c
	- modified:   lib/aclcur/phi.h
	- modified:   lib/aclcur/reg.c
	- modified:   lib/aclcur/reg.h
	- new file:   lib/aclcur/reg/var.c
	- new file:   lib/aclcur/reg/var.h
	- modified:   lib/aclcur/ret/emit.c
	- new file:   lib/aclcur/ssa.h
	- modified:   lib/aclcur/store.c
	- modified:   lib/aclemit/body.c
	- modified:   lib/aclemit/fndecl/body.c
	- modified:   lib/aclemit/fndecl/entp.c
	- modified:   lib/aclemit/fndecl/entp/args.c
	- modified:   lib/aclemit/root.c
	- modified:   lib/aclexpr/arithmetic_cast.c
	- modified:   lib/aclexpr/beforevisit/bool1.c
	- modified:   lib/aclexpr/carve.c
	- modified:   lib/aclexpr/carve/op1/arithmetic_cast.c
	- modified:   lib/aclexpr/carve/op1/incr.c
	- modified:   lib/aclexpr/carve/op2/arithmetic.c
	- modified:   lib/aclexpr/carve/op2/assign.c
	- modified:   lib/aclexpr/carve/op2/bool0.c
	- modified:   lib/aclexpr/carve/op2/bool1.c
	- new file:   lib/aclexpr/curreg.h
	- modified:   lib/aclexpr/visit/simple.h
	- modified:   lib/aclty/struct/mbr.c
	- modified:   lib/ctx/compile.c
	- modified:   lib/ctx/init_fini.c
	- modified:   lib/util/constant/repvec.c
	- modified:   src/lib/body/if.c
	- modified:   src/lib/body/vardecl.c
	- modified:   src/lib/body/while.cc
Changes to be committed:
	- modified:   lib/aclcur/emit.c
	- modified:   lib/aclcur/flag0.h
	- modified:   lib/aclcur/lbl.c
	- modified:   lib/aclcur/lbl.h
	- modified:   lib/aclcur/lbl/reach.c
	- modified:   lib/aclcur/lbl/reach.h
	- modified:   lib/aclcur/load.c
	- modified:   lib/aclcur/reg/var.c
	- modified:   lib/aclcur/ssa.h
	- modified:   lib/aclemit/body.c
	- modified:   lib/aclemit/fndecl/body.c
	- modified:   lib/aclexpr.c
	- modified:   lib/aclexpr/carve/op1/arithmetic_cast.c
	- modified:   lib/aclexpr/carve/op2/arithmetic.c
	- modified:   lib/aclexpr/op.h
	- modified:   lib/aclexpr/visit/op2/arithmetic.h
	- modified:   src/lib/body/while.cc
	- modified:   src/source.cl
Changes to be committed:
	- modified:   inc/aclspv.h
	- modified:   lib/aclcur/emit.h
	- modified:   lib/aclcur/jc.c
	- modified:   lib/aclcur/op/emit.c
	- modified:   lib/aclcur/op2.c
	- modified:   lib/aclcur/op3.c
	- modified:   lib/aclcur/opX.c
	- modified:   lib/aclcur/opX.h
	- modified:   lib/aclcur/opX/emit.c
	- modified:   lib/aclcur/opX/emit.h
	- modified:   lib/aclcur/phi.c
	- modified:   lib/aclcur/reg/var.h
	- modified:   lib/aclcur/ssa.h
	- modified:   lib/aclexpr/curreg.h
	- modified:   lib/aclmem.h
	- modified:   lib/aclty/struct/mbr.c
	- modified:   lib/ctx/compile.c
	- modified:   lib/ctx/dump.c
	- modified:   lib/ctx/init_fini.c
	- modified:   test/lifespan/compiler-run-multiple.c
	- modified:   test/lifespan/compiler-run.c
Changes to be committed:
	- modified:   lib/aclcur/load.c
	- modified:   lib/aclcur/store.c
	- modified:   lib/aclexpr/carve/op1/incr.c
	- modified:   lib/aclexpr/carve/op2/arithmetic.c
	- modified:   lib/aclexpr/carve/op2/assign.c
Changes to be committed:
	- modified:   lib/aclcur/store.c
	- modified:   lib/aclexpr/carve/op2/arithmetic.c
	- modified:   lib/aclexpr/carve/op2/assign.c
	- modified:   lib/aclexpr/visit.c
	- modified:   lib/aclexpr/visit/op2/arithmetic.h
	- modified:   lib/aclexpr/visit/simple.h
	- modified:   lib/util/constant.h
	- modified:   src/source.cl
Changes to be committed:
	- modified:   lib/aclexpr/carve.c
	- modified:   lib/aclexpr/carve/op2/arithmetic.c
	- new file:   lib/aclexpr/carve/op2/cmp.c
	- new file:   lib/aclexpr/carve/op2/cmp.h
	- modified:   lib/aclexpr/visit.c
	- modified:   lib/aclexpr/visit/op2/arithmetic.h
	- new file:   lib/aclexpr/visit/op2/cmp.h
Changes to be committed:
	- modified:   lib/aclexpr/carve/op2/bool0.c
Changes to be committed:
	- modified:   lib/aclexpr/carve.c
	- new file:   lib/aclexpr/carve/op2/shift.c
	- new file:   lib/aclexpr/carve/op2/shift.h
	- modified:   lib/aclexpr/op.h
	- modified:   lib/aclexpr/visit.c
	- new file:   lib/aclexpr/visit/op2/shift.h
	- modified:   src/source.cl
	- modified:   test/inc/acltest/onefile.h
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin aclcur:aclcur
git switch aclcur

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff aclcur
git switch aclcur
git rebase master
git switch master
git merge --ff-only aclcur
git switch aclcur
git rebase master
git switch master
git merge --no-ff aclcur
git switch master
git merge --squash aclcur
git switch master
git merge --ff-only aclcur
git switch master
git merge aclcur
git push origin master
Sign in to join this conversation.
No description provided.