From 9cb04b815ba4498469f6eec4096a4a309e239a93 Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti <rafaelravedutti@gmail.com> Date: Sun, 20 Feb 2022 17:24:58 +0100 Subject: [PATCH] Remove (some) useless generated property accesses when writing to properties Signed-off-by: Rafael Ravedutti <rafaelravedutti@gmail.com> --- examples/kernels | 1532 ++++++++++++++++----------------- examples/kernels.pdf | Bin 44739 -> 44739 bytes examples/lj_ns.cpp | 193 +++-- src/pairs/analysis/bin_ops.py | 10 +- src/pairs/code_gen/cgen.py | 14 +- src/pairs/sim/pbc.py | 3 +- 6 files changed, 881 insertions(+), 871 deletions(-) diff --git a/examples/kernels b/examples/kernels index 14ac907..b676adc 100644 --- a/examples/kernels +++ b/examples/kernels @@ -1,770 +1,770 @@ digraph AST { node [color=lightblue2 style=filled] size="6,6" - n140355025086840 [label=Block] - n140355025140984 [label=Module] - n140355025086840 -> n140355025140984 - n140355025141040 [label=Module] - n140355025086840 -> n140355025141040 - n140355025140984 [label=Module] - n140355025140928 [label=Block] - n140355025140984 -> n140355025140928 - n140355025140928 [label=Block] - n140355025138688 [label=ParticleFor] - n140355025140928 -> n140355025138688 - n140355025138688 [label=ParticleFor] - n140355024390632 [label=Block] - n140355025138688 -> n140355024390632 - n140355027620920 [label=nlocal] - n140355025138688 -> n140355027620920 - n140355024390632 [label=Block] - n140355024390800 [label=For] - n140355024390632 -> n140355024390800 - n140355024391080 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024391080 -> n140355024390464 - n140355025137792 [label=neighborlist_capacity] - n140355024391080 -> n140355025137792 - n140355024390464 [label="Iter(14)"] - n140355025137792 [label=neighborlist_capacity] - n140355024391304 [label=PropertyAccess] - n140355025087064 [label=position] - n140355024391304 -> n140355025087064 - n140355024390464 [label="Iter(14)"] - n140355024391304 -> n140355024390464 - n140355024417120 [label="*"] - n140355024391304 -> n140355024417120 - n140355024418968 [label="+"] - n140355024391304 -> n140355024418968 - n140355024420760 [label="+"] - n140355024391304 -> n140355024420760 - n140355025087064 [label=position] - n140355024417120 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024417120 -> n140355024390464 - n140355024417176 [label=3] - n140355024417120 -> n140355024417176 - n140355024417176 [label=3] - n140355024418968 [label="+"] - n140355024418800 [label="*"] - n140355024418968 -> n140355024418800 - n140355024419024 [label=1] - n140355024418968 -> n140355024419024 - n140355024418800 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024418800 -> n140355024390464 - n140355024418856 [label=3] - n140355024418800 -> n140355024418856 - n140355024418856 [label=3] - n140355024419024 [label=1] - n140355024420760 [label="+"] - n140355024420592 [label="*"] - n140355024420760 -> n140355024420592 - n140355024420816 [label=2] - n140355024420760 -> n140355024420816 - n140355024420592 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024420592 -> n140355024390464 - n140355024420648 [label=3] - n140355024420592 -> n140355024420648 - n140355024420648 [label=3] - n140355024420816 [label=2] - n140355024391696 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024391696 -> n140355024390464 - n140355024391752 [label=3] - n140355024391696 -> n140355024391752 - n140355024391752 [label=3] - n140355024418016 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024418016 -> n140355024390464 - n140355024418072 [label=3] - n140355024418016 -> n140355024418072 - n140355024418072 [label=3] - n140355024418184 [label="+"] - n140355024418016 [label="*"] - n140355024418184 -> n140355024418016 - n140355024418240 [label=1] - n140355024418184 -> n140355024418240 - n140355024418240 [label=1] - n140355024419808 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355024419808 -> n140355024390464 - n140355024419864 [label=3] - n140355024419808 -> n140355024419864 - n140355024419864 [label=3] - n140355024419976 [label="+"] - n140355024419808 [label="*"] - n140355024419976 -> n140355024419808 - n140355024420032 [label=2] - n140355024419976 -> n140355024420032 - n140355024420032 [label=2] - n140355025282160 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025282160 -> n140355024390464 - n140355025282216 [label=3] - n140355025282160 -> n140355025282216 - n140355025282216 [label=3] - n140355025282552 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025282552 -> n140355024390464 - n140355025282608 [label=3] - n140355025282552 -> n140355025282608 - n140355025282608 [label=3] - n140355025283056 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025283056 -> n140355024390464 - n140355025283112 [label=3] - n140355025283056 -> n140355025283112 - n140355025283112 [label=3] - n140355025283224 [label="+"] - n140355025283056 [label="*"] - n140355025283224 -> n140355025283056 - n140355025283280 [label=1] - n140355025283224 -> n140355025283280 - n140355025283280 [label=1] - n140355025283448 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025283448 -> n140355024390464 - n140355025283504 [label=3] - n140355025283448 -> n140355025283504 - n140355025283504 [label=3] - n140355025283616 [label="+"] - n140355025283448 [label="*"] - n140355025283616 -> n140355025283448 - n140355025283672 [label=1] - n140355025283616 -> n140355025283672 - n140355025283672 [label=1] - n140355025283952 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025283952 -> n140355024390464 - n140355025284008 [label=3] - n140355025283952 -> n140355025284008 - n140355025284008 [label=3] - n140355025284120 [label="+"] - n140355025283952 [label="*"] - n140355025284120 -> n140355025283952 - n140355025284176 [label=2] - n140355025284120 -> n140355025284176 - n140355025284176 [label=2] - n140355025284344 [label="*"] - n140355024390464 [label="Iter(14)"] - n140355025284344 -> n140355024390464 - n140355025284400 [label=3] - n140355025284344 -> n140355025284400 - n140355025284400 [label=3] - n140355025284512 [label="+"] - n140355025284344 [label="*"] - n140355025284512 -> n140355025284344 - n140355025284568 [label=2] - n140355025284512 -> n140355025284568 - n140355025284568 [label=2] - n140355024390800 [label=For] - n140355024390856 [label="Iter(15)"] - n140355024390800 -> n140355024390856 - n140355024390968 [label=Block] - n140355024390800 -> n140355024390968 - n140355024390912 [label=0] - n140355024390800 -> n140355024390912 - n140355024390744 [label=ArrayAccess] - n140355024390800 -> n140355024390744 - n140355024390856 [label="Iter(15)"] - n140355024390968 [label=Block] - n140355024454544 [label=Filter] - n140355024390968 -> n140355024454544 - n140355024391192 [label="+"] - n140355024391080 [label="*"] - n140355024391192 -> n140355024391080 - n140355024390856 [label="Iter(15)"] - n140355024391192 -> n140355024390856 - n140355024391416 [label=PropertyAccess] - n140355025087064 [label=position] - n140355024391416 -> n140355025087064 - n140355024391024 [label=ArrayAccess] - n140355024391416 -> n140355024391024 - n140355024417456 [label="*"] - n140355024391416 -> n140355024417456 - n140355024419304 [label="+"] - n140355024391416 -> n140355024419304 - n140355024453928 [label="+"] - n140355024391416 -> n140355024453928 - n140355024391024 [label=ArrayAccess] - n140355025137848 [label=neighborlists] - n140355024391024 -> n140355025137848 - n140355024391192 [label="+"] - n140355024391024 -> n140355024391192 - n140355025137848 [label=neighborlists] - n140355024417456 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024417456 -> n140355024391024 - n140355024417512 [label=3] - n140355024417456 -> n140355024417512 - n140355024417512 [label=3] - n140355024419304 [label="+"] - n140355024419136 [label="*"] - n140355024419304 -> n140355024419136 - n140355024419360 [label=1] - n140355024419304 -> n140355024419360 - n140355024419136 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024419136 -> n140355024391024 - n140355024419192 [label=3] - n140355024419136 -> n140355024419192 - n140355024419192 [label=3] - n140355024419360 [label=1] - n140355024453928 [label="+"] - n140355024453760 [label="*"] - n140355024453928 -> n140355024453760 - n140355024453984 [label=2] - n140355024453928 -> n140355024453984 - n140355024453760 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024453760 -> n140355024391024 - n140355024453816 [label=3] - n140355024453760 -> n140355024453816 - n140355024453816 [label=3] - n140355024453984 [label=2] - n140355024391528 [label="-"] - n140355024391304 [label=PropertyAccess] - n140355024391528 -> n140355024391304 - n140355024391416 [label=PropertyAccess] - n140355024391528 -> n140355024391416 - n140355024392032 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024392032 -> n140355024391024 - n140355024392088 [label=3] - n140355024392032 -> n140355024392088 - n140355024392088 [label=3] - n140355024417848 [label="*"] - n140355024417008 [label=VectorAccess] - n140355024417848 -> n140355024417008 - n140355024417792 [label=VectorAccess] - n140355024417848 -> n140355024417792 - n140355024417008 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024417008 -> n140355024391528 - n140355024417792 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024417792 -> n140355024391528 - n140355024418352 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024418352 -> n140355024391024 - n140355024418408 [label=3] - n140355024418352 -> n140355024418408 - n140355024418408 [label=3] - n140355024418520 [label="+"] - n140355024418352 [label="*"] - n140355024418520 -> n140355024418352 - n140355024418576 [label=1] - n140355024418520 -> n140355024418576 - n140355024418576 [label=1] - n140355024419528 [label="*"] - n140355024418688 [label=VectorAccess] - n140355024419528 -> n140355024418688 - n140355024419472 [label=VectorAccess] - n140355024419528 -> n140355024419472 - n140355024418688 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024418688 -> n140355024391528 - n140355024419472 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024419472 -> n140355024391528 - n140355024419640 [label="+"] - n140355024417848 [label="*"] - n140355024419640 -> n140355024417848 - n140355024419528 [label="*"] - n140355024419640 -> n140355024419528 - n140355024420144 [label="*"] - n140355024391024 [label=ArrayAccess] - n140355024420144 -> n140355024391024 - n140355024420200 [label=3] - n140355024420144 -> n140355024420200 - n140355024420200 [label=3] - n140355024420312 [label="+"] - n140355024420144 [label="*"] - n140355024420312 -> n140355024420144 - n140355024420368 [label=2] - n140355024420312 -> n140355024420368 - n140355024420368 [label=2] - n140355024454152 [label="*"] - n140355024420480 [label=VectorAccess] - n140355024454152 -> n140355024420480 - n140355024454096 [label=VectorAccess] - n140355024454152 -> n140355024454096 - n140355024420480 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024420480 -> n140355024391528 - n140355024454096 [label=VectorAccess] - n140355024391528 [label="-"] - n140355024454096 -> n140355024391528 - n140355024454264 [label="+"] - n140355024419640 [label="+"] - n140355024454264 -> n140355024419640 - n140355024454152 [label="*"] - n140355024454264 -> n140355024454152 - n140355024454376 [label="<"] - n140355024454264 [label="+"] - n140355024454376 -> n140355024454264 - n140355024454432 [label=2.5] - n140355024454376 -> n140355024454432 - n140355024454432 [label=2.5] - n140355024454544 [label=Filter] - n140355024454376 [label="<"] - n140355024454544 -> n140355024454376 - n140355025140872 [label=Block] - n140355024454544 -> n140355025140872 - n140355025140872 [label=Block] - n140355025282048 [label=Assign] - n140355025140872 -> n140355025282048 - n140355025141208 [label="/"] - n140355025141264 [label=1.0] - n140355025141208 -> n140355025141264 - n140355024454264 [label="+"] - n140355025141208 -> n140355024454264 - n140355025141264 [label=1.0] - n140355025141376 [label="*"] - n140355025141208 [label="/"] - n140355025141376 -> n140355025141208 - n140355025141208 [label="/"] - n140355025141376 -> n140355025141208 - n140355025141488 [label="*"] - n140355025141376 [label="*"] - n140355025141488 -> n140355025141376 - n140355025141208 [label="/"] - n140355025141488 -> n140355025141208 - n140355025141152 [label=PropertyAccess] - n140355025087176 [label=force] - n140355025141152 -> n140355025087176 - n140355024390464 [label="Iter(14)"] - n140355025141152 -> n140355024390464 - n140355025282552 [label="*"] - n140355025141152 -> n140355025282552 - n140355025283616 [label="+"] - n140355025141152 -> n140355025283616 - n140355025284512 [label="+"] - n140355025141152 -> n140355025284512 - n140355025087176 [label=force] - n140355025281096 [label="*"] - n140355024391528 [label="-"] - n140355025281096 -> n140355024391528 - n140355025281152 [label=48.0] - n140355025281096 -> n140355025281152 - n140355025281152 [label=48.0] - n140355025281264 [label="*"] - n140355024391528 [label="-"] - n140355025281264 -> n140355024391528 - n140355024827392 [label="*"] - n140355025281264 -> n140355024827392 - n140355024827392 [label="*"] - n140355025281152 [label=48.0] - n140355024827392 -> n140355025281152 - n140355025141488 [label="*"] - n140355024827392 -> n140355025141488 - n140355025281376 [label="-"] - n140355025141488 [label="*"] - n140355025281376 -> n140355025141488 - n140355025281432 [label=0.5] - n140355025281376 -> n140355025281432 - n140355025281432 [label=0.5] - n140355025281544 [label="*"] - n140355024391528 [label="-"] - n140355025281544 -> n140355024391528 - n140355024803320 [label="*"] - n140355025281544 -> n140355024803320 - n140355024803320 [label="*"] - n140355024827392 [label="*"] - n140355024803320 -> n140355024827392 - n140355025281376 [label="-"] - n140355024803320 -> n140355025281376 - n140355025281656 [label="*"] - n140355024391528 [label="-"] - n140355025281656 -> n140355024391528 - n140355024803040 [label="*"] - n140355025281656 -> n140355024803040 - n140355024803040 [label="*"] - n140355024803320 [label="*"] - n140355024803040 -> n140355024803320 - n140355025141208 [label="/"] - n140355024803040 -> n140355025141208 - n140355025281936 [label="+"] - n140355025141152 [label=PropertyAccess] - n140355025281936 -> n140355025141152 - n140355025281656 [label="*"] - n140355025281936 -> n140355025281656 - n140355025282048 [label=Assign] - n140355025282944 [label=VectorAccess] - n140355025282048 -> n140355025282944 - n140355025282496 [label=VectorAccess] - n140355025282048 -> n140355025282496 - n140355025283840 [label=VectorAccess] - n140355025282048 -> n140355025283840 - n140355025283392 [label=VectorAccess] - n140355025282048 -> n140355025283392 - n140355025284736 [label=VectorAccess] - n140355025282048 -> n140355025284736 - n140355025284288 [label=VectorAccess] - n140355025282048 -> n140355025284288 - n140355025282944 [label=VectorAccess] - n140355025141152 [label=PropertyAccess] - n140355025282944 -> n140355025141152 - n140355025282496 [label=VectorAccess] - n140355025281936 [label="+"] - n140355025282496 -> n140355025281936 - n140355025283840 [label=VectorAccess] - n140355025141152 [label=PropertyAccess] - n140355025283840 -> n140355025141152 - n140355025283392 [label=VectorAccess] - n140355025281936 [label="+"] - n140355025283392 -> n140355025281936 - n140355025284736 [label=VectorAccess] - n140355025141152 [label=PropertyAccess] - n140355025284736 -> n140355025141152 - n140355025284288 [label=VectorAccess] - n140355025281936 [label="+"] - n140355025284288 -> n140355025281936 - n140355024390912 [label=0] - n140355024390744 [label=ArrayAccess] - n140355025137904 [label=numneighs] - n140355024390744 -> n140355025137904 - n140355024390464 [label="Iter(14)"] - n140355024390744 -> n140355024390464 - n140355025137904 [label=numneighs] - n140355027620920 [label=nlocal] - n140355025141040 [label=Module] - n140355025138352 [label=Block] - n140355025141040 -> n140355025138352 - n140355025138352 [label=Block] - n140355025140536 [label=ParticleFor] - n140355025138352 -> n140355025140536 - n140355025140536 [label=ParticleFor] - n140355025138576 [label=Block] - n140355025140536 -> n140355025138576 - n140355027620920 [label=nlocal] - n140355025140536 -> n140355027620920 - n140355025138576 [label=Block] - n140355024802312 [label=Assign] - n140355025138576 -> n140355024802312 - n140355024827112 [label=Assign] - n140355025138576 -> n140355024827112 - n140355025284848 [label=PropertyAccess] - n140355025087120 [label=velocity] - n140355025284848 -> n140355025087120 - n140355025139584 [label="Iter(0)"] - n140355025284848 -> n140355025139584 - n140355024802816 [label="*"] - n140355025284848 -> n140355024802816 - n140355024804552 [label="+"] - n140355025284848 -> n140355024804552 - n140355024805784 [label="+"] - n140355025284848 -> n140355024805784 - n140355025087120 [label=velocity] - n140355025139584 [label="Iter(0)"] - n140355024802816 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024802816 -> n140355025139584 - n140355024803208 [label=3] - n140355024802816 -> n140355024803208 - n140355024803208 [label=3] - n140355024804552 [label="+"] - n140355024804048 [label="*"] - n140355024804552 -> n140355024804048 - n140355024804608 [label=1] - n140355024804552 -> n140355024804608 - n140355024804048 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024804048 -> n140355025139584 - n140355024804440 [label=3] - n140355024804048 -> n140355024804440 - n140355024804440 [label=3] - n140355024804608 [label=1] - n140355024805784 [label="+"] - n140355024805280 [label="*"] - n140355024805784 -> n140355024805280 - n140355024805840 [label=2] - n140355024805784 -> n140355024805840 - n140355024805280 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024805280 -> n140355025139584 - n140355024805672 [label=3] - n140355024805280 -> n140355024805672 - n140355024805672 [label=3] - n140355024805840 [label=2] - n140355025284960 [label=PropertyAccess] - n140355025087176 [label=force] - n140355025284960 -> n140355025087176 - n140355025139584 [label="Iter(0)"] - n140355025284960 -> n140355025139584 - n140355024802872 [label="*"] - n140355025284960 -> n140355024802872 - n140355024804272 [label="+"] - n140355025284960 -> n140355024804272 - n140355024805504 [label="+"] - n140355025284960 -> n140355024805504 - n140355024802872 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024802872 -> n140355025139584 - n140355024802928 [label=3] - n140355024802872 -> n140355024802928 - n140355024802928 [label=3] - n140355024804272 [label="+"] - n140355024804104 [label="*"] - n140355024804272 -> n140355024804104 - n140355024804328 [label=1] - n140355024804272 -> n140355024804328 - n140355024804104 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024804104 -> n140355025139584 - n140355024804160 [label=3] - n140355024804104 -> n140355024804160 - n140355024804160 [label=3] - n140355024804328 [label=1] - n140355024805504 [label="+"] - n140355024805336 [label="*"] - n140355024805504 -> n140355024805336 - n140355024805560 [label=2] - n140355024805504 -> n140355024805560 - n140355024805336 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024805336 -> n140355025139584 - n140355024805392 [label=3] - n140355024805336 -> n140355024805392 - n140355024805392 [label=3] - n140355024805560 [label=2] - n140355025285072 [label="*"] - n140355024801864 [label=0.005] - n140355025285072 -> n140355024801864 - n140355025284960 [label=PropertyAccess] - n140355025285072 -> n140355025284960 - n140355024801864 [label=0.005] - n140355024801976 [label=PropertyAccess] - n140355025087008 [label=mass] - n140355024801976 -> n140355025087008 - n140355025139584 [label="Iter(0)"] - n140355024801976 -> n140355025139584 - n140355025087008 [label=mass] - n140355024802088 [label="/"] - n140355025285072 [label="*"] - n140355024802088 -> n140355025285072 - n140355024801976 [label=PropertyAccess] - n140355024802088 -> n140355024801976 - n140355024802200 [label="+"] - n140355025284848 [label=PropertyAccess] - n140355024802200 -> n140355025284848 - n140355024802088 [label="/"] - n140355024802200 -> n140355024802088 - n140355024802424 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024802424 -> n140355025139584 - n140355024802480 [label=3] - n140355024802424 -> n140355024802480 - n140355024802480 [label=3] - n140355024803656 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024803656 -> n140355025139584 - n140355024803712 [label=3] - n140355024803656 -> n140355024803712 - n140355024803712 [label=3] - n140355024803824 [label="+"] - n140355024803656 [label="*"] - n140355024803824 -> n140355024803656 - n140355024803880 [label=1] - n140355024803824 -> n140355024803880 - n140355024803880 [label=1] - n140355024804888 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024804888 -> n140355025139584 - n140355024804944 [label=3] - n140355024804888 -> n140355024804944 - n140355024804944 [label=3] - n140355024805056 [label="+"] - n140355024804888 [label="*"] - n140355024805056 -> n140355024804888 - n140355024805112 [label=2] - n140355024805056 -> n140355024805112 - n140355024805112 [label=2] - n140355024802312 [label=Assign] - n140355024803544 [label=VectorAccess] - n140355024802312 -> n140355024803544 - n140355024802760 [label=VectorAccess] - n140355024802312 -> n140355024802760 - n140355024804776 [label=VectorAccess] - n140355024802312 -> n140355024804776 - n140355024803992 [label=VectorAccess] - n140355024802312 -> n140355024803992 - n140355024826552 [label=VectorAccess] - n140355024802312 -> n140355024826552 - n140355024805224 [label=VectorAccess] - n140355024802312 -> n140355024805224 - n140355024803544 [label=VectorAccess] - n140355025284848 [label=PropertyAccess] - n140355024803544 -> n140355025284848 - n140355024802760 [label=VectorAccess] - n140355024802200 [label="+"] - n140355024802760 -> n140355024802200 - n140355024804776 [label=VectorAccess] - n140355025284848 [label=PropertyAccess] - n140355024804776 -> n140355025284848 - n140355024803992 [label=VectorAccess] - n140355024802200 [label="+"] - n140355024803992 -> n140355024802200 - n140355024826552 [label=VectorAccess] - n140355025284848 [label=PropertyAccess] - n140355024826552 -> n140355025284848 - n140355024805224 [label=VectorAccess] - n140355024802200 [label="+"] - n140355024805224 -> n140355024802200 - n140355024826608 [label=PropertyAccess] - n140355025087064 [label=position] - n140355024826608 -> n140355025087064 - n140355025139584 [label="Iter(0)"] - n140355024826608 -> n140355025139584 - n140355024827952 [label="*"] - n140355024826608 -> n140355024827952 - n140355024829352 [label="+"] - n140355024826608 -> n140355024829352 - n140355028299112 [label="+"] - n140355024826608 -> n140355028299112 - n140355024827952 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024827952 -> n140355025139584 - n140355024828008 [label=3] - n140355024827952 -> n140355024828008 - n140355024828008 [label=3] - n140355024829352 [label="+"] - n140355024829184 [label="*"] - n140355024829352 -> n140355024829184 - n140355024829408 [label=1] - n140355024829352 -> n140355024829408 - n140355024829184 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024829184 -> n140355025139584 - n140355024829240 [label=3] - n140355024829184 -> n140355024829240 - n140355024829240 [label=3] - n140355024829408 [label=1] - n140355028299112 [label="+"] - n140355024830416 [label="*"] - n140355028299112 -> n140355024830416 - n140355024851128 [label=2] - n140355028299112 -> n140355024851128 - n140355024830416 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024830416 -> n140355025139584 - n140355024851016 [label=3] - n140355024830416 -> n140355024851016 - n140355024851016 [label=3] - n140355024851128 [label=2] - n140355024826720 [label=PropertyAccess] - n140355025087120 [label=velocity] - n140355024826720 -> n140355025087120 - n140355025139584 [label="Iter(0)"] - n140355024826720 -> n140355025139584 - n140355024827616 [label="*"] - n140355024826720 -> n140355024827616 - n140355024829016 [label="+"] - n140355024826720 -> n140355024829016 - n140355024830248 [label="+"] - n140355024826720 -> n140355024830248 - n140355024827616 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024827616 -> n140355025139584 - n140355024827672 [label=3] - n140355024827616 -> n140355024827672 - n140355024827672 [label=3] - n140355024829016 [label="+"] - n140355024828848 [label="*"] - n140355024829016 -> n140355024828848 - n140355024829072 [label=1] - n140355024829016 -> n140355024829072 - n140355024828848 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024828848 -> n140355025139584 - n140355024828904 [label=3] - n140355024828848 -> n140355024828904 - n140355024828904 [label=3] - n140355024829072 [label=1] - n140355024830248 [label="+"] - n140355024830080 [label="*"] - n140355024830248 -> n140355024830080 - n140355024830304 [label=2] - n140355024830248 -> n140355024830304 - n140355024830080 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024830080 -> n140355025139584 - n140355024830136 [label=3] - n140355024830080 -> n140355024830136 - n140355024830136 [label=3] - n140355024830304 [label=2] - n140355024826832 [label="*"] - n140355024826888 [label=0.005] - n140355024826832 -> n140355024826888 - n140355024826720 [label=PropertyAccess] - n140355024826832 -> n140355024826720 - n140355024826888 [label=0.005] - n140355024827000 [label="+"] - n140355024826608 [label=PropertyAccess] - n140355024827000 -> n140355024826608 - n140355024826832 [label="*"] - n140355024827000 -> n140355024826832 - n140355024827224 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024827224 -> n140355025139584 - n140355024827280 [label=3] - n140355024827224 -> n140355024827280 - n140355024827280 [label=3] - n140355024828456 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024828456 -> n140355025139584 - n140355024828512 [label=3] - n140355024828456 -> n140355024828512 - n140355024828512 [label=3] - n140355024828624 [label="+"] - n140355024828456 [label="*"] - n140355024828624 -> n140355024828456 - n140355024828680 [label=1] - n140355024828624 -> n140355024828680 - n140355024828680 [label=1] - n140355024829688 [label="*"] - n140355025139584 [label="Iter(0)"] - n140355024829688 -> n140355025139584 - n140355024829744 [label=3] - n140355024829688 -> n140355024829744 - n140355024829744 [label=3] - n140355024829856 [label="+"] - n140355024829688 [label="*"] - n140355024829856 -> n140355024829688 - n140355024829912 [label=2] - n140355024829856 -> n140355024829912 - n140355024829912 [label=2] - n140355024827112 [label=Assign] - n140355024828344 [label=VectorAccess] - n140355024827112 -> n140355024828344 - n140355024827560 [label=VectorAccess] - n140355024827112 -> n140355024827560 - n140355024829576 [label=VectorAccess] - n140355024827112 -> n140355024829576 - n140355024828792 [label=VectorAccess] - n140355024827112 -> n140355024828792 - n140355024851296 [label=VectorAccess] - n140355024827112 -> n140355024851296 - n140355024830024 [label=VectorAccess] - n140355024827112 -> n140355024830024 - n140355024828344 [label=VectorAccess] - n140355024826608 [label=PropertyAccess] - n140355024828344 -> n140355024826608 - n140355024827560 [label=VectorAccess] - n140355024827000 [label="+"] - n140355024827560 -> n140355024827000 - n140355024829576 [label=VectorAccess] - n140355024826608 [label=PropertyAccess] - n140355024829576 -> n140355024826608 - n140355024828792 [label=VectorAccess] - n140355024827000 [label="+"] - n140355024828792 -> n140355024827000 - n140355024851296 [label=VectorAccess] - n140355024826608 [label=PropertyAccess] - n140355024851296 -> n140355024826608 - n140355024830024 [label=VectorAccess] - n140355024827000 [label="+"] - n140355024830024 -> n140355024827000 + n139718004412312 [label=Block] + n139718004022408 [label=Module] + n139718004412312 -> n139718004022408 + n139718004022464 [label=Module] + n139718004412312 -> n139718004022464 + n139718004022408 [label=Module] + n139718004022352 [label=Block] + n139718004022408 -> n139718004022352 + n139718004022352 [label=Block] + n139718004020224 [label=ParticleFor] + n139718004022352 -> n139718004020224 + n139718004020224 [label=ParticleFor] + n139718003272448 [label=Block] + n139718004020224 -> n139718003272448 + n139718006498360 [label=nlocal] + n139718004020224 -> n139718006498360 + n139718003272448 [label=Block] + n139718003272616 [label=For] + n139718003272448 -> n139718003272616 + n139718003272896 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003272896 -> n139718003272280 + n139718003965848 [label=neighborlist_capacity] + n139718003272896 -> n139718003965848 + n139718003272280 [label="Iter(14)"] + n139718003965848 [label=neighborlist_capacity] + n139718003273120 [label=PropertyAccess] + n139718003964336 [label=position] + n139718003273120 -> n139718003964336 + n139718003272280 [label="Iter(14)"] + n139718003273120 -> n139718003272280 + n139718003303032 [label="*"] + n139718003273120 -> n139718003303032 + n139718003304880 [label="+"] + n139718003273120 -> n139718003304880 + n139718003339504 [label="+"] + n139718003273120 -> n139718003339504 + n139718003964336 [label=position] + n139718003303032 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003303032 -> n139718003272280 + n139718003303088 [label=3] + n139718003303032 -> n139718003303088 + n139718003303088 [label=3] + n139718003304880 [label="+"] + n139718003304712 [label="*"] + n139718003304880 -> n139718003304712 + n139718003304936 [label=1] + n139718003304880 -> n139718003304936 + n139718003304712 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003304712 -> n139718003272280 + n139718003304768 [label=3] + n139718003304712 -> n139718003304768 + n139718003304768 [label=3] + n139718003304936 [label=1] + n139718003339504 [label="+"] + n139718003339336 [label="*"] + n139718003339504 -> n139718003339336 + n139718003339560 [label=2] + n139718003339504 -> n139718003339560 + n139718003339336 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003339336 -> n139718003272280 + n139718003339392 [label=3] + n139718003339336 -> n139718003339392 + n139718003339392 [label=3] + n139718003339560 [label=2] + n139718003273512 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003273512 -> n139718003272280 + n139718003273568 [label=3] + n139718003273512 -> n139718003273568 + n139718003273568 [label=3] + n139718003303928 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003303928 -> n139718003272280 + n139718003303984 [label=3] + n139718003303928 -> n139718003303984 + n139718003303984 [label=3] + n139718003304096 [label="+"] + n139718003303928 [label="*"] + n139718003304096 -> n139718003303928 + n139718003304152 [label=1] + n139718003304096 -> n139718003304152 + n139718003304152 [label=1] + n139718003305720 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718003305720 -> n139718003272280 + n139718003305776 [label=3] + n139718003305720 -> n139718003305776 + n139718003305776 [label=3] + n139718003305888 [label="+"] + n139718003305720 [label="*"] + n139718003305888 -> n139718003305720 + n139718003305944 [label=2] + n139718003305888 -> n139718003305944 + n139718003305944 [label=2] + n139718004167680 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004167680 -> n139718003272280 + n139718004167736 [label=3] + n139718004167680 -> n139718004167736 + n139718004167736 [label=3] + n139718004168072 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004168072 -> n139718003272280 + n139718004168128 [label=3] + n139718004168072 -> n139718004168128 + n139718004168128 [label=3] + n139718004168576 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004168576 -> n139718003272280 + n139718004168632 [label=3] + n139718004168576 -> n139718004168632 + n139718004168632 [label=3] + n139718004168744 [label="+"] + n139718004168576 [label="*"] + n139718004168744 -> n139718004168576 + n139718004168800 [label=1] + n139718004168744 -> n139718004168800 + n139718004168800 [label=1] + n139718004168968 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004168968 -> n139718003272280 + n139718004169024 [label=3] + n139718004168968 -> n139718004169024 + n139718004169024 [label=3] + n139718004169136 [label="+"] + n139718004168968 [label="*"] + n139718004169136 -> n139718004168968 + n139718004169192 [label=1] + n139718004169136 -> n139718004169192 + n139718004169192 [label=1] + n139718004169472 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004169472 -> n139718003272280 + n139718004169528 [label=3] + n139718004169472 -> n139718004169528 + n139718004169528 [label=3] + n139718004169640 [label="+"] + n139718004169472 [label="*"] + n139718004169640 -> n139718004169472 + n139718004169696 [label=2] + n139718004169640 -> n139718004169696 + n139718004169696 [label=2] + n139718004169864 [label="*"] + n139718003272280 [label="Iter(14)"] + n139718004169864 -> n139718003272280 + n139718004169920 [label=3] + n139718004169864 -> n139718004169920 + n139718004169920 [label=3] + n139718004170032 [label="+"] + n139718004169864 [label="*"] + n139718004170032 -> n139718004169864 + n139718004170088 [label=2] + n139718004170032 -> n139718004170088 + n139718004170088 [label=2] + n139718003272616 [label=For] + n139718003272672 [label="Iter(15)"] + n139718003272616 -> n139718003272672 + n139718003272784 [label=Block] + n139718003272616 -> n139718003272784 + n139718003272728 [label=0] + n139718003272616 -> n139718003272728 + n139718003272560 [label=ArrayAccess] + n139718003272616 -> n139718003272560 + n139718003272672 [label="Iter(15)"] + n139718003272784 [label=Block] + n139718003340456 [label=Filter] + n139718003272784 -> n139718003340456 + n139718003273008 [label="+"] + n139718003272896 [label="*"] + n139718003273008 -> n139718003272896 + n139718003272672 [label="Iter(15)"] + n139718003273008 -> n139718003272672 + n139718003273232 [label=PropertyAccess] + n139718003964336 [label=position] + n139718003273232 -> n139718003964336 + n139718003272840 [label=ArrayAccess] + n139718003273232 -> n139718003272840 + n139718003303368 [label="*"] + n139718003273232 -> n139718003303368 + n139718003305216 [label="+"] + n139718003273232 -> n139718003305216 + n139718003339840 [label="+"] + n139718003273232 -> n139718003339840 + n139718003272840 [label=ArrayAccess] + n139718003965904 [label=neighborlists] + n139718003272840 -> n139718003965904 + n139718003273008 [label="+"] + n139718003272840 -> n139718003273008 + n139718003965904 [label=neighborlists] + n139718003303368 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003303368 -> n139718003272840 + n139718003303424 [label=3] + n139718003303368 -> n139718003303424 + n139718003303424 [label=3] + n139718003305216 [label="+"] + n139718003305048 [label="*"] + n139718003305216 -> n139718003305048 + n139718003305272 [label=1] + n139718003305216 -> n139718003305272 + n139718003305048 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003305048 -> n139718003272840 + n139718003305104 [label=3] + n139718003305048 -> n139718003305104 + n139718003305104 [label=3] + n139718003305272 [label=1] + n139718003339840 [label="+"] + n139718003339672 [label="*"] + n139718003339840 -> n139718003339672 + n139718003339896 [label=2] + n139718003339840 -> n139718003339896 + n139718003339672 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003339672 -> n139718003272840 + n139718003339728 [label=3] + n139718003339672 -> n139718003339728 + n139718003339728 [label=3] + n139718003339896 [label=2] + n139718003273344 [label="-"] + n139718003273120 [label=PropertyAccess] + n139718003273344 -> n139718003273120 + n139718003273232 [label=PropertyAccess] + n139718003273344 -> n139718003273232 + n139718003302584 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003302584 -> n139718003272840 + n139718003302640 [label=3] + n139718003302584 -> n139718003302640 + n139718003302640 [label=3] + n139718003303760 [label="*"] + n139718003302920 [label=VectorAccess] + n139718003303760 -> n139718003302920 + n139718003303704 [label=VectorAccess] + n139718003303760 -> n139718003303704 + n139718003302920 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003302920 -> n139718003273344 + n139718003303704 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003303704 -> n139718003273344 + n139718003304264 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003304264 -> n139718003272840 + n139718003304320 [label=3] + n139718003304264 -> n139718003304320 + n139718003304320 [label=3] + n139718003304432 [label="+"] + n139718003304264 [label="*"] + n139718003304432 -> n139718003304264 + n139718003304488 [label=1] + n139718003304432 -> n139718003304488 + n139718003304488 [label=1] + n139718003305440 [label="*"] + n139718003304600 [label=VectorAccess] + n139718003305440 -> n139718003304600 + n139718003305384 [label=VectorAccess] + n139718003305440 -> n139718003305384 + n139718003304600 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003304600 -> n139718003273344 + n139718003305384 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003305384 -> n139718003273344 + n139718003305552 [label="+"] + n139718003303760 [label="*"] + n139718003305552 -> n139718003303760 + n139718003305440 [label="*"] + n139718003305552 -> n139718003305440 + n139718003306056 [label="*"] + n139718003272840 [label=ArrayAccess] + n139718003306056 -> n139718003272840 + n139718003306112 [label=3] + n139718003306056 -> n139718003306112 + n139718003306112 [label=3] + n139718003306224 [label="+"] + n139718003306056 [label="*"] + n139718003306224 -> n139718003306056 + n139718003306280 [label=2] + n139718003306224 -> n139718003306280 + n139718003306280 [label=2] + n139718003340064 [label="*"] + n139718003306392 [label=VectorAccess] + n139718003340064 -> n139718003306392 + n139718003340008 [label=VectorAccess] + n139718003340064 -> n139718003340008 + n139718003306392 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003306392 -> n139718003273344 + n139718003340008 [label=VectorAccess] + n139718003273344 [label="-"] + n139718003340008 -> n139718003273344 + n139718003340176 [label="+"] + n139718003305552 [label="+"] + n139718003340176 -> n139718003305552 + n139718003340064 [label="*"] + n139718003340176 -> n139718003340064 + n139718003340288 [label="<"] + n139718003340176 [label="+"] + n139718003340288 -> n139718003340176 + n139718003340344 [label=2.5] + n139718003340288 -> n139718003340344 + n139718003340344 [label=2.5] + n139718003340456 [label=Filter] + n139718003340288 [label="<"] + n139718003340456 -> n139718003340288 + n139718004022296 [label=Block] + n139718003340456 -> n139718004022296 + n139718004022296 [label=Block] + n139718004167568 [label=Assign] + n139718004022296 -> n139718004167568 + n139718004022632 [label="/"] + n139718004022688 [label=1.0] + n139718004022632 -> n139718004022688 + n139718003340176 [label="+"] + n139718004022632 -> n139718003340176 + n139718004022688 [label=1.0] + n139718004022800 [label="*"] + n139718004022632 [label="/"] + n139718004022800 -> n139718004022632 + n139718004022632 [label="/"] + n139718004022800 -> n139718004022632 + n139718004022912 [label="*"] + n139718004022800 [label="*"] + n139718004022912 -> n139718004022800 + n139718004022632 [label="/"] + n139718004022912 -> n139718004022632 + n139718004022576 [label=PropertyAccess] + n139718003964448 [label=force] + n139718004022576 -> n139718003964448 + n139718003272280 [label="Iter(14)"] + n139718004022576 -> n139718003272280 + n139718004168072 [label="*"] + n139718004022576 -> n139718004168072 + n139718004169136 [label="+"] + n139718004022576 -> n139718004169136 + n139718004170032 [label="+"] + n139718004022576 -> n139718004170032 + n139718003964448 [label=force] + n139718004023248 [label="*"] + n139718003273344 [label="-"] + n139718004023248 -> n139718003273344 + n139718004019832 [label=48.0] + n139718004023248 -> n139718004019832 + n139718004019832 [label=48.0] + n139718004166784 [label="*"] + n139718003273344 [label="-"] + n139718004166784 -> n139718003273344 + n139718003712912 [label="*"] + n139718004166784 -> n139718003712912 + n139718003712912 [label="*"] + n139718004019832 [label=48.0] + n139718003712912 -> n139718004019832 + n139718004022912 [label="*"] + n139718003712912 -> n139718004022912 + n139718004166896 [label="-"] + n139718004022912 [label="*"] + n139718004166896 -> n139718004022912 + n139718004166952 [label=0.5] + n139718004166896 -> n139718004166952 + n139718004166952 [label=0.5] + n139718004167064 [label="*"] + n139718003273344 [label="-"] + n139718004167064 -> n139718003273344 + n139718003688840 [label="*"] + n139718004167064 -> n139718003688840 + n139718003688840 [label="*"] + n139718003712912 [label="*"] + n139718003688840 -> n139718003712912 + n139718004166896 [label="-"] + n139718003688840 -> n139718004166896 + n139718004167176 [label="*"] + n139718003273344 [label="-"] + n139718004167176 -> n139718003273344 + n139718003688560 [label="*"] + n139718004167176 -> n139718003688560 + n139718003688560 [label="*"] + n139718003688840 [label="*"] + n139718003688560 -> n139718003688840 + n139718004022632 [label="/"] + n139718003688560 -> n139718004022632 + n139718004167456 [label="+"] + n139718004022576 [label=PropertyAccess] + n139718004167456 -> n139718004022576 + n139718004167176 [label="*"] + n139718004167456 -> n139718004167176 + n139718004167568 [label=Assign] + n139718004168464 [label=VectorAccess] + n139718004167568 -> n139718004168464 + n139718004168016 [label=VectorAccess] + n139718004167568 -> n139718004168016 + n139718004169360 [label=VectorAccess] + n139718004167568 -> n139718004169360 + n139718004168912 [label=VectorAccess] + n139718004167568 -> n139718004168912 + n139718004170256 [label=VectorAccess] + n139718004167568 -> n139718004170256 + n139718004169808 [label=VectorAccess] + n139718004167568 -> n139718004169808 + n139718004168464 [label=VectorAccess] + n139718004022576 [label=PropertyAccess] + n139718004168464 -> n139718004022576 + n139718004168016 [label=VectorAccess] + n139718004167456 [label="+"] + n139718004168016 -> n139718004167456 + n139718004169360 [label=VectorAccess] + n139718004022576 [label=PropertyAccess] + n139718004169360 -> n139718004022576 + n139718004168912 [label=VectorAccess] + n139718004167456 [label="+"] + n139718004168912 -> n139718004167456 + n139718004170256 [label=VectorAccess] + n139718004022576 [label=PropertyAccess] + n139718004170256 -> n139718004022576 + n139718004169808 [label=VectorAccess] + n139718004167456 [label="+"] + n139718004169808 -> n139718004167456 + n139718003272728 [label=0] + n139718003272560 [label=ArrayAccess] + n139718004019272 [label=numneighs] + n139718003272560 -> n139718004019272 + n139718003272280 [label="Iter(14)"] + n139718003272560 -> n139718003272280 + n139718004019272 [label=numneighs] + n139718006498360 [label=nlocal] + n139718004022464 [label=Module] + n139718004019720 [label=Block] + n139718004022464 -> n139718004019720 + n139718004019720 [label=Block] + n139718004022016 [label=ParticleFor] + n139718004019720 -> n139718004022016 + n139718004022016 [label=ParticleFor] + n139718004019944 [label=Block] + n139718004022016 -> n139718004019944 + n139718006498360 [label=nlocal] + n139718004022016 -> n139718006498360 + n139718004019944 [label=Block] + n139718003687832 [label=Assign] + n139718004019944 -> n139718003687832 + n139718003712632 [label=Assign] + n139718004019944 -> n139718003712632 + n139718004170368 [label=PropertyAccess] + n139718003964392 [label=velocity] + n139718004170368 -> n139718003964392 + n139718004021008 [label="Iter(0)"] + n139718004170368 -> n139718004021008 + n139718003688336 [label="*"] + n139718004170368 -> n139718003688336 + n139718003690072 [label="+"] + n139718004170368 -> n139718003690072 + n139718003691304 [label="+"] + n139718004170368 -> n139718003691304 + n139718003964392 [label=velocity] + n139718004021008 [label="Iter(0)"] + n139718003688336 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003688336 -> n139718004021008 + n139718003688728 [label=3] + n139718003688336 -> n139718003688728 + n139718003688728 [label=3] + n139718003690072 [label="+"] + n139718003689568 [label="*"] + n139718003690072 -> n139718003689568 + n139718003690128 [label=1] + n139718003690072 -> n139718003690128 + n139718003689568 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003689568 -> n139718004021008 + n139718003689960 [label=3] + n139718003689568 -> n139718003689960 + n139718003689960 [label=3] + n139718003690128 [label=1] + n139718003691304 [label="+"] + n139718003690800 [label="*"] + n139718003691304 -> n139718003690800 + n139718003691360 [label=2] + n139718003691304 -> n139718003691360 + n139718003690800 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003690800 -> n139718004021008 + n139718003691192 [label=3] + n139718003690800 -> n139718003691192 + n139718003691192 [label=3] + n139718003691360 [label=2] + n139718004170480 [label=PropertyAccess] + n139718003964448 [label=force] + n139718004170480 -> n139718003964448 + n139718004021008 [label="Iter(0)"] + n139718004170480 -> n139718004021008 + n139718003688392 [label="*"] + n139718004170480 -> n139718003688392 + n139718003689792 [label="+"] + n139718004170480 -> n139718003689792 + n139718003691024 [label="+"] + n139718004170480 -> n139718003691024 + n139718003688392 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003688392 -> n139718004021008 + n139718003688448 [label=3] + n139718003688392 -> n139718003688448 + n139718003688448 [label=3] + n139718003689792 [label="+"] + n139718003689624 [label="*"] + n139718003689792 -> n139718003689624 + n139718003689848 [label=1] + n139718003689792 -> n139718003689848 + n139718003689624 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003689624 -> n139718004021008 + n139718003689680 [label=3] + n139718003689624 -> n139718003689680 + n139718003689680 [label=3] + n139718003689848 [label=1] + n139718003691024 [label="+"] + n139718003690856 [label="*"] + n139718003691024 -> n139718003690856 + n139718003691080 [label=2] + n139718003691024 -> n139718003691080 + n139718003690856 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003690856 -> n139718004021008 + n139718003690912 [label=3] + n139718003690856 -> n139718003690912 + n139718003690912 [label=3] + n139718003691080 [label=2] + n139718004170592 [label="*"] + n139718004170648 [label=0.005] + n139718004170592 -> n139718004170648 + n139718004170480 [label=PropertyAccess] + n139718004170592 -> n139718004170480 + n139718004170648 [label=0.005] + n139718003687496 [label=PropertyAccess] + n139718003964280 [label=mass] + n139718003687496 -> n139718003964280 + n139718004021008 [label="Iter(0)"] + n139718003687496 -> n139718004021008 + n139718003964280 [label=mass] + n139718003687608 [label="/"] + n139718004170592 [label="*"] + n139718003687608 -> n139718004170592 + n139718003687496 [label=PropertyAccess] + n139718003687608 -> n139718003687496 + n139718003687720 [label="+"] + n139718004170368 [label=PropertyAccess] + n139718003687720 -> n139718004170368 + n139718003687608 [label="/"] + n139718003687720 -> n139718003687608 + n139718003687944 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003687944 -> n139718004021008 + n139718003688000 [label=3] + n139718003687944 -> n139718003688000 + n139718003688000 [label=3] + n139718003689176 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003689176 -> n139718004021008 + n139718003689232 [label=3] + n139718003689176 -> n139718003689232 + n139718003689232 [label=3] + n139718003689344 [label="+"] + n139718003689176 [label="*"] + n139718003689344 -> n139718003689176 + n139718003689400 [label=1] + n139718003689344 -> n139718003689400 + n139718003689400 [label=1] + n139718003690408 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003690408 -> n139718004021008 + n139718003690464 [label=3] + n139718003690408 -> n139718003690464 + n139718003690464 [label=3] + n139718003690576 [label="+"] + n139718003690408 [label="*"] + n139718003690576 -> n139718003690408 + n139718003690632 [label=2] + n139718003690576 -> n139718003690632 + n139718003690632 [label=2] + n139718003687832 [label=Assign] + n139718003689064 [label=VectorAccess] + n139718003687832 -> n139718003689064 + n139718003688280 [label=VectorAccess] + n139718003687832 -> n139718003688280 + n139718003690296 [label=VectorAccess] + n139718003687832 -> n139718003690296 + n139718003689512 [label=VectorAccess] + n139718003687832 -> n139718003689512 + n139718003712072 [label=VectorAccess] + n139718003687832 -> n139718003712072 + n139718003690744 [label=VectorAccess] + n139718003687832 -> n139718003690744 + n139718003689064 [label=VectorAccess] + n139718004170368 [label=PropertyAccess] + n139718003689064 -> n139718004170368 + n139718003688280 [label=VectorAccess] + n139718003687720 [label="+"] + n139718003688280 -> n139718003687720 + n139718003690296 [label=VectorAccess] + n139718004170368 [label=PropertyAccess] + n139718003690296 -> n139718004170368 + n139718003689512 [label=VectorAccess] + n139718003687720 [label="+"] + n139718003689512 -> n139718003687720 + n139718003712072 [label=VectorAccess] + n139718004170368 [label=PropertyAccess] + n139718003712072 -> n139718004170368 + n139718003690744 [label=VectorAccess] + n139718003687720 [label="+"] + n139718003690744 -> n139718003687720 + n139718003712128 [label=PropertyAccess] + n139718003964336 [label=position] + n139718003712128 -> n139718003964336 + n139718004021008 [label="Iter(0)"] + n139718003712128 -> n139718004021008 + n139718003713472 [label="*"] + n139718003712128 -> n139718003713472 + n139718003714872 [label="+"] + n139718003712128 -> n139718003714872 + n139718003736648 [label="+"] + n139718003712128 -> n139718003736648 + n139718003713472 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003713472 -> n139718004021008 + n139718003713528 [label=3] + n139718003713472 -> n139718003713528 + n139718003713528 [label=3] + n139718003714872 [label="+"] + n139718003714704 [label="*"] + n139718003714872 -> n139718003714704 + n139718003714928 [label=1] + n139718003714872 -> n139718003714928 + n139718003714704 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003714704 -> n139718004021008 + n139718003714760 [label=3] + n139718003714704 -> n139718003714760 + n139718003714760 [label=3] + n139718003714928 [label=1] + n139718003736648 [label="+"] + n139718003715936 [label="*"] + n139718003736648 -> n139718003715936 + n139718003736704 [label=2] + n139718003736648 -> n139718003736704 + n139718003715936 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003715936 -> n139718004021008 + n139718003715992 [label=3] + n139718003715936 -> n139718003715992 + n139718003715992 [label=3] + n139718003736704 [label=2] + n139718003712240 [label=PropertyAccess] + n139718003964392 [label=velocity] + n139718003712240 -> n139718003964392 + n139718004021008 [label="Iter(0)"] + n139718003712240 -> n139718004021008 + n139718003713136 [label="*"] + n139718003712240 -> n139718003713136 + n139718003714536 [label="+"] + n139718003712240 -> n139718003714536 + n139718003715768 [label="+"] + n139718003712240 -> n139718003715768 + n139718003713136 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003713136 -> n139718004021008 + n139718003713192 [label=3] + n139718003713136 -> n139718003713192 + n139718003713192 [label=3] + n139718003714536 [label="+"] + n139718003714368 [label="*"] + n139718003714536 -> n139718003714368 + n139718003714592 [label=1] + n139718003714536 -> n139718003714592 + n139718003714368 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003714368 -> n139718004021008 + n139718003714424 [label=3] + n139718003714368 -> n139718003714424 + n139718003714424 [label=3] + n139718003714592 [label=1] + n139718003715768 [label="+"] + n139718003715600 [label="*"] + n139718003715768 -> n139718003715600 + n139718003715824 [label=2] + n139718003715768 -> n139718003715824 + n139718003715600 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003715600 -> n139718004021008 + n139718003715656 [label=3] + n139718003715600 -> n139718003715656 + n139718003715656 [label=3] + n139718003715824 [label=2] + n139718003712352 [label="*"] + n139718003712408 [label=0.005] + n139718003712352 -> n139718003712408 + n139718003712240 [label=PropertyAccess] + n139718003712352 -> n139718003712240 + n139718003712408 [label=0.005] + n139718003712520 [label="+"] + n139718003712128 [label=PropertyAccess] + n139718003712520 -> n139718003712128 + n139718003712352 [label="*"] + n139718003712520 -> n139718003712352 + n139718003712744 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003712744 -> n139718004021008 + n139718003712800 [label=3] + n139718003712744 -> n139718003712800 + n139718003712800 [label=3] + n139718003713976 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003713976 -> n139718004021008 + n139718003714032 [label=3] + n139718003713976 -> n139718003714032 + n139718003714032 [label=3] + n139718003714144 [label="+"] + n139718003713976 [label="*"] + n139718003714144 -> n139718003713976 + n139718003714200 [label=1] + n139718003714144 -> n139718003714200 + n139718003714200 [label=1] + n139718003715208 [label="*"] + n139718004021008 [label="Iter(0)"] + n139718003715208 -> n139718004021008 + n139718003715264 [label=3] + n139718003715208 -> n139718003715264 + n139718003715264 [label=3] + n139718003715376 [label="+"] + n139718003715208 [label="*"] + n139718003715376 -> n139718003715208 + n139718003715432 [label=2] + n139718003715376 -> n139718003715432 + n139718003715432 [label=2] + n139718003712632 [label=Assign] + n139718003713864 [label=VectorAccess] + n139718003712632 -> n139718003713864 + n139718003713080 [label=VectorAccess] + n139718003712632 -> n139718003713080 + n139718003715096 [label=VectorAccess] + n139718003712632 -> n139718003715096 + n139718003714312 [label=VectorAccess] + n139718003712632 -> n139718003714312 + n139718003736872 [label=VectorAccess] + n139718003712632 -> n139718003736872 + n139718003715544 [label=VectorAccess] + n139718003712632 -> n139718003715544 + n139718003713864 [label=VectorAccess] + n139718003712128 [label=PropertyAccess] + n139718003713864 -> n139718003712128 + n139718003713080 [label=VectorAccess] + n139718003712520 [label="+"] + n139718003713080 -> n139718003712520 + n139718003715096 [label=VectorAccess] + n139718003712128 [label=PropertyAccess] + n139718003715096 -> n139718003712128 + n139718003714312 [label=VectorAccess] + n139718003712520 [label="+"] + n139718003714312 -> n139718003712520 + n139718003736872 [label=VectorAccess] + n139718003712128 [label=PropertyAccess] + n139718003736872 -> n139718003712128 + n139718003715544 [label=VectorAccess] + n139718003712520 [label="+"] + n139718003715544 -> n139718003712520 } diff --git a/examples/kernels.pdf b/examples/kernels.pdf index 2ae7d50bbeb33be1effdcfd77b3fea29fa17df1c..e8449858f70d1ead5c5491e1366f807fb9f44430 100644 GIT binary patch delta 23 fcmX?nm+A0brVXrXIgAVp&5eu<j5hPG-Npz2aUKX` delta 23 fcmX?nm+A0brVXrXISeff%}mS<EjIJ6-Npz2am)yJ diff --git a/examples/lj_ns.cpp b/examples/lj_ns.cpp index f0db776..3c37b59 100644 --- a/examples/lj_ns.cpp +++ b/examples/lj_ns.cpp @@ -15,13 +15,13 @@ void module_0(int neighborlist_capacity, int nlocal, int *neighborlists, int *nu for(int i14 = 0; i14 < nlocal; i14++) { const int e369 = i14 * neighborlist_capacity; const int e376 = i14 * 3; - const double p23_0 = position[e376]; + const double p26_0 = position[e376]; const int e385 = i14 * 3; const int e386 = e385 + 1; - const double p23_1 = position[e386]; + const double p26_1 = position[e386]; const int e395 = i14 * 3; const int e396 = e395 + 2; - const double p23_2 = position[e396]; + const double p26_2 = position[e396]; const int e14 = i14 * 3; const int e18 = i14 * 3; const int e19 = e18 + 1; @@ -32,16 +32,16 @@ void module_0(int neighborlist_capacity, int nlocal, int *neighborlists, int *nu const int e370 = e369 + i15; const int a57 = neighborlists[e370]; const int e378 = a57 * 3; - const double p24_0 = position[e378]; + const double p27_0 = position[e378]; const int e387 = a57 * 3; const int e388 = e387 + 1; - const double p24_1 = position[e388]; + const double p27_1 = position[e388]; const int e397 = a57 * 3; const int e398 = e397 + 2; - const double p24_2 = position[e398]; - const double e371_0 = p23_0 - p24_0; - const double e371_1 = p23_1 - p24_1; - const double e371_2 = p23_2 - p24_2; + const double p27_2 = position[e398]; + const double e371_0 = p26_0 - p27_0; + const double e371_1 = p26_1 - p27_1; + const double e371_2 = p26_2 - p27_2; const double e380 = e371_0 * e371_0; const double e389 = e371_1 * e371_1; const double e390 = e380 + e389; @@ -236,29 +236,26 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap const int e204 = e203 + 2; const double p7_2 = position[e204]; const int e156 = nlocal + (*npbc); - const int e188 = e156 * 3; - const double p8_0 = position[e188]; - const int e195 = e156 * 3; - const int e196 = e195 + 1; - const double p8_1 = position[e196]; - const int e201 = e156 * 3; - const int e202 = e201 + 2; - const double p8_2 = position[e202]; const bool e161 = p7_0 < e160; if(e161) { pbc_map[(*npbc)] = i6; const int e162 = (*npbc) * 3; pbc_mult[e162] = 1; + const int e164 = e156 * 3; const double e168 = p7_0 + e157; - position[e188] = e168; + position[e164] = e168; const int e169 = (*npbc) * 3; const int e170 = e169 + 1; pbc_mult[e170] = 0; - position[e196] = p7_1; + const int e171 = e156 * 3; + const int e172 = e171 + 1; + position[e172] = p7_1; const int e175 = (*npbc) * 3; const int e176 = e175 + 2; pbc_mult[e176] = 0; - position[e202] = p7_2; + const int e177 = e156 * 3; + const int e178 = e177 + 2; + position[e178] = p7_2; const int e181 = (*npbc) + 1; const int e446 = e181 + 1; const bool e447 = e446 >= pbc_capacity; @@ -273,15 +270,20 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap pbc_map[(*npbc)] = i6; const int e186 = (*npbc) * 3; pbc_mult[e186] = -1; + const int e188 = e156 * 3; const double e192 = p7_0 - e157; position[e188] = e192; const int e193 = (*npbc) * 3; const int e194 = e193 + 1; pbc_mult[e194] = 0; + const int e195 = e156 * 3; + const int e196 = e195 + 1; position[e196] = p7_1; const int e199 = (*npbc) * 3; const int e200 = e199 + 2; pbc_mult[e200] = 0; + const int e201 = e156 * 3; + const int e202 = e201 + 2; position[e202] = p7_2; const int e205 = (*npbc) + 1; const int e448 = e205 + 1; @@ -299,37 +301,34 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap const double e235 = grid0_d1_max - 2.8; for(int i7 = 0; i7 < e206; i7++) { const int e248 = i7 * 3; - const double p9_0 = position[e248]; + const double p10_0 = position[e248]; const int e241 = i7 * 3; const int e242 = e241 + 1; - const double p9_1 = position[e242]; + const double p10_1 = position[e242]; const int e254 = i7 * 3; const int e255 = e254 + 2; - const double p9_2 = position[e255]; + const double p10_2 = position[e255]; const int e207 = nlocal + (*npbc); - const int e246 = e207 * 3; - const double p10_0 = position[e246]; - const int e239 = e207 * 3; - const int e240 = e239 + 1; - const double p10_1 = position[e240]; - const int e252 = e207 * 3; - const int e253 = e252 + 2; - const double p10_2 = position[e253]; - const bool e212 = p9_1 < e211; + const bool e212 = p10_1 < e211; if(e212) { pbc_map[(*npbc)] = i7; const int e213 = (*npbc) * 3; const int e214 = e213 + 1; pbc_mult[e214] = 1; - const double e219 = p9_1 + e208; - position[e240] = e219; + const int e215 = e207 * 3; + const int e216 = e215 + 1; + const double e219 = p10_1 + e208; + position[e216] = e219; const int e220 = (*npbc) * 3; pbc_mult[e220] = 0; - position[e246] = p9_0; + const int e222 = e207 * 3; + position[e222] = p10_0; const int e226 = (*npbc) * 3; const int e227 = e226 + 2; pbc_mult[e227] = 0; - position[e253] = p9_2; + const int e228 = e207 * 3; + const int e229 = e228 + 2; + position[e229] = p10_2; const int e232 = (*npbc) + 1; const int e450 = e232 + 1; const bool e451 = e450 >= pbc_capacity; @@ -339,21 +338,26 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap (*npbc) = e232; } } - const bool e236 = p9_1 > e235; + const bool e236 = p10_1 > e235; if(e236) { pbc_map[(*npbc)] = i7; const int e237 = (*npbc) * 3; const int e238 = e237 + 1; pbc_mult[e238] = -1; - const double e243 = p9_1 - e208; + const int e239 = e207 * 3; + const int e240 = e239 + 1; + const double e243 = p10_1 - e208; position[e240] = e243; const int e244 = (*npbc) * 3; pbc_mult[e244] = 0; - position[e246] = p9_0; + const int e246 = e207 * 3; + position[e246] = p10_0; const int e250 = (*npbc) * 3; const int e251 = e250 + 2; pbc_mult[e251] = 0; - position[e253] = p9_2; + const int e252 = e207 * 3; + const int e253 = e252 + 2; + position[e253] = p10_2; const int e256 = (*npbc) + 1; const int e452 = e256 + 1; const bool e453 = e452 >= pbc_capacity; @@ -370,37 +374,34 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap const double e286 = grid0_d2_max - 2.8; for(int i8 = 0; i8 < e257; i8++) { const int e299 = i8 * 3; - const double p11_0 = position[e299]; + const double p13_0 = position[e299]; const int e305 = i8 * 3; const int e306 = e305 + 1; - const double p11_1 = position[e306]; + const double p13_1 = position[e306]; const int e292 = i8 * 3; const int e293 = e292 + 2; - const double p11_2 = position[e293]; + const double p13_2 = position[e293]; const int e258 = nlocal + (*npbc); - const int e297 = e258 * 3; - const double p12_0 = position[e297]; - const int e303 = e258 * 3; - const int e304 = e303 + 1; - const double p12_1 = position[e304]; - const int e290 = e258 * 3; - const int e291 = e290 + 2; - const double p12_2 = position[e291]; - const bool e263 = p11_2 < e262; + const bool e263 = p13_2 < e262; if(e263) { pbc_map[(*npbc)] = i8; const int e264 = (*npbc) * 3; const int e265 = e264 + 2; pbc_mult[e265] = 1; - const double e270 = p11_2 + e259; - position[e291] = e270; + const int e266 = e258 * 3; + const int e267 = e266 + 2; + const double e270 = p13_2 + e259; + position[e267] = e270; const int e271 = (*npbc) * 3; pbc_mult[e271] = 0; - position[e297] = p11_0; + const int e273 = e258 * 3; + position[e273] = p13_0; const int e277 = (*npbc) * 3; const int e278 = e277 + 1; pbc_mult[e278] = 0; - position[e304] = p11_1; + const int e279 = e258 * 3; + const int e280 = e279 + 1; + position[e280] = p13_1; const int e283 = (*npbc) + 1; const int e454 = e283 + 1; const bool e455 = e454 >= pbc_capacity; @@ -410,21 +411,26 @@ void setup_pbc(int nlocal, double grid0_d0_max, double grid0_d0_min, int pbc_cap (*npbc) = e283; } } - const bool e287 = p11_2 > e286; + const bool e287 = p13_2 > e286; if(e287) { pbc_map[(*npbc)] = i8; const int e288 = (*npbc) * 3; const int e289 = e288 + 2; pbc_mult[e289] = -1; - const double e294 = p11_2 - e259; + const int e290 = e258 * 3; + const int e291 = e290 + 2; + const double e294 = p13_2 - e259; position[e291] = e294; const int e295 = (*npbc) * 3; pbc_mult[e295] = 0; - position[e297] = p11_0; + const int e297 = e258 * 3; + position[e297] = p13_0; const int e301 = (*npbc) * 3; const int e302 = e301 + 1; pbc_mult[e302] = 0; - position[e304] = p11_1; + const int e303 = e258 * 3; + const int e304 = e303 + 1; + position[e304] = p13_1; const int e307 = (*npbc) + 1; const int e456 = e307 + 1; const bool e457 = e456 >= pbc_capacity; @@ -443,42 +449,39 @@ void update_pbc(double grid0_d0_max, double grid0_d0_min, double grid0_d1_max, d for(int i9 = 0; i9 < npbc; i9++) { const int e308 = nlocal + i9; const int e309 = e308 * 3; - const double p13_0 = position[e309]; const int a39 = pbc_map[i9]; const int e311 = a39 * 3; - const double p14_0 = position[e311]; + const double p17_0 = position[e311]; const int e313 = i9 * 3; const int a40 = pbc_mult[e313]; const double e316 = a40 * e315; - const double e317 = p14_0 + e316; + const double e317 = p17_0 + e316; position[e309] = e317; const int e318 = nlocal + i9; const int e319 = e318 * 3; const int e320 = e319 + 1; - const double p15_1 = position[e320]; const int a41 = pbc_map[i9]; const int e321 = a41 * 3; const int e322 = e321 + 1; - const double p16_1 = position[e322]; + const double p19_1 = position[e322]; const int e323 = i9 * 3; const int e324 = e323 + 1; const int a42 = pbc_mult[e324]; const double e326 = a42 * e325; - const double e327 = p16_1 + e326; + const double e327 = p19_1 + e326; position[e320] = e327; const int e328 = nlocal + i9; const int e329 = e328 * 3; const int e330 = e329 + 2; - const double p17_2 = position[e330]; const int a43 = pbc_map[i9]; const int e331 = a43 * 3; const int e332 = e331 + 2; - const double p18_2 = position[e332]; + const double p21_2 = position[e332]; const int e333 = i9 * 3; const int e334 = e333 + 2; const int a44 = pbc_mult[e334]; const double e336 = a44 * e335; - const double e337 = p18_2 + e336; + const double e337 = p21_2 + e336; position[e330] = e337; } } @@ -489,18 +492,18 @@ void build_cell_lists(int ncells, double grid0_d0_min, double grid0_d1_min, doub const int e541 = nlocal + npbc; for(int i11 = 0; i11 < e541; i11++) { const int e338 = i11 * 3; - const double p19_0 = position[e338]; - const double e340 = p19_0 - grid0_d0_min; + const double p22_0 = position[e338]; + const double e340 = p22_0 - grid0_d0_min; const double e341 = e340 / 2.8; const int e342 = i11 * 3; const int e343 = e342 + 1; - const double p20_1 = position[e343]; - const double e344 = p20_1 - grid0_d1_min; + const double p23_1 = position[e343]; + const double e344 = p23_1 - grid0_d1_min; const double e345 = e344 / 2.8; const int e346 = i11 * 3; const int e347 = e346 + 2; - const double p21_2 = position[e347]; - const double e348 = p21_2 - grid0_d2_min; + const double p24_2 = position[e347]; + const double e348 = p24_2 - grid0_d2_min; const double e349 = e348 / 2.8; const int a46 = dim_cells[1]; const int e350 = (int)(e341) * a46; @@ -543,13 +546,13 @@ void neighbor_lists_build(int nlocal, int ncells, int cell_capacity, int neighbo if(e406) { const int e407 = e403 * cell_capacity; const int e415 = i16 * 3; - const double p25_0 = position[e415]; + const double p28_0 = position[e415]; const int e424 = i16 * 3; const int e425 = e424 + 1; - const double p25_1 = position[e425]; + const double p28_1 = position[e425]; const int e434 = i16 * 3; const int e435 = e434 + 2; - const double p25_2 = position[e435]; + const double p28_2 = position[e435]; const int e360 = i16 * neighborlist_capacity; const int a60 = cell_sizes[e403]; for(int i18 = 0; i18 < a60; i18++) { @@ -558,16 +561,16 @@ void neighbor_lists_build(int nlocal, int ncells, int cell_capacity, int neighbo const bool e409 = a61 != i16; if(e409) { const int e417 = a61 * 3; - const double p26_0 = position[e417]; + const double p29_0 = position[e417]; const int e426 = a61 * 3; const int e427 = e426 + 1; - const double p26_1 = position[e427]; + const double p29_1 = position[e427]; const int e436 = a61 * 3; const int e437 = e436 + 2; - const double p26_2 = position[e437]; - const double e410_0 = p25_0 - p26_0; - const double e410_1 = p25_1 - p26_1; - const double e410_2 = p25_2 - p26_2; + const double p29_2 = position[e437]; + const double e410_0 = p28_0 - p29_0; + const double e410_1 = p28_1 - p29_1; + const double e410_2 = p28_2 - p29_2; const double e419 = e410_0 * e410_0; const double e428 = e410_1 * e410_1; const double e429 = e419 + e428; @@ -596,13 +599,13 @@ void neighbor_lists_build(int nlocal, int ncells, int cell_capacity, int neighbo void reset_volatile_properties(int nlocal, double *force) { for(int i13 = 0; i13 < nlocal; i13++) { const int e363 = i13 * 3; - const double p22_0 = force[e363]; + const double p25_0 = force[e363]; const int e365 = i13 * 3; const int e366 = e365 + 1; - const double p22_1 = force[e366]; + const double p25_1 = force[e366]; const int e367 = i13 * 3; const int e368 = e367 + 2; - const double p22_2 = force[e368]; + const double p25_2 = force[e368]; force[e363] = 0.0; force[e366] = 0.0; force[e368] = 0.0; @@ -860,28 +863,28 @@ int main() { prop_hflags[0] = e530; module_0(neighborlist_capacity, nlocal, d_neighborlists, d_numneighs, d_position, d_force); const unsigned long long int a131 = prop_dflags[0]; - const unsigned long long int e531 = a131 & 4; + const unsigned long long int e531 = a131 & 8; const bool e532 = e531 == 0; if(e532) { - pairs::copy_to_device(velocity, d_velocity) + pairs::copy_to_device(force, d_force) } const unsigned long long int a132 = prop_dflags[0]; - const unsigned long long int e533 = a132 & 1; + const unsigned long long int e533 = a132 & 2; const bool e534 = e533 == 0; if(e534) { - pairs::copy_to_device(mass, d_mass) + pairs::copy_to_device(position, d_position) } const unsigned long long int a133 = prop_dflags[0]; - const unsigned long long int e535 = a133 & 8; + const unsigned long long int e535 = a133 & 4; const bool e536 = e535 == 0; if(e536) { - pairs::copy_to_device(force, d_force) + pairs::copy_to_device(velocity, d_velocity) } const unsigned long long int a134 = prop_dflags[0]; - const unsigned long long int e537 = a134 & 2; + const unsigned long long int e537 = a134 & 1; const bool e538 = e537 == 0; if(e538) { - pairs::copy_to_device(position, d_position) + pairs::copy_to_device(mass, d_mass) } const unsigned long long int a136 = prop_dflags[0]; const unsigned long long int e539 = a136 | 15; diff --git a/src/pairs/analysis/bin_ops.py b/src/pairs/analysis/bin_ops.py index 3750caa..e19a3a2 100644 --- a/src/pairs/analysis/bin_ops.py +++ b/src/pairs/analysis/bin_ops.py @@ -41,6 +41,13 @@ class SetUsedBinOps(Visitor): def __init__(self, ast): super().__init__(ast) self.bin_ops = [] + self.writing = False + + def visit_Assign(self, ast_node): + self.writing = True + self.visit(ast_node.destinations()) + self.writing = False + self.visit(ast_node.sources()) def visit_BinOp(self, ast_node): ast_node.decl.used = True @@ -50,5 +57,6 @@ class SetUsedBinOps(Visitor): pass def visit_PropertyAccess(self, ast_node): - ast_node.decl.used = True + ast_node.decl.used = not self.writing + self.writing = False self.visit_children(ast_node) diff --git a/src/pairs/code_gen/cgen.py b/src/pairs/code_gen/cgen.py index b8afb91..99d37fc 100644 --- a/src/pairs/code_gen/cgen.py +++ b/src/pairs/code_gen/cgen.py @@ -141,10 +141,8 @@ class CGen: # TODO: Why there are Decls for other types? if isinstance(ast_node, Decl): - if isinstance(ast_node.elem, BinOp): + if isinstance(ast_node.elem, BinOp) and (bypass_checking or ast_node.used): bin_op = ast_node.elem - if not bypass_checking and (not isinstance(bin_op, BinOp) or not ast_node.used): - return None if bin_op.inlined is False and bin_op.generated is False: if bin_op.is_vector_kind(): @@ -152,7 +150,6 @@ class CGen: lhs = self.generate_expression(bin_op.lhs, bin_op.mem, index=i) rhs = self.generate_expression(bin_op.rhs, index=i) self.print(f"const double e{bin_op.id()}_{i} = {lhs} {bin_op.operator()} {rhs};") - else: lhs = self.generate_expression(bin_op.lhs, bin_op.mem) rhs = self.generate_expression(bin_op.rhs) @@ -161,7 +158,7 @@ class CGen: ast_node.elem.generated = True - if isinstance(ast_node.elem, PropertyAccess): + if isinstance(ast_node.elem, PropertyAccess) and (bypass_checking or ast_node.used): prop_access = ast_node.elem prop_name = prop_access.prop.name() acc_ref = f"p{prop_access.id()}" @@ -170,7 +167,6 @@ class CGen: for i in prop_access.indexes(): i_expr = self.generate_expression(prop_access.get_index_expression(i)) self.print(f"const double {acc_ref}_{i} = {prop_name}[{i_expr}];") - else: tkw = Types.c_keyword(prop_access.type()) index_g = self.generate_expression(prop_access.index) @@ -237,6 +233,8 @@ class CGen: if isinstance(ast_node, ModuleCall): module = ast_node.module module_params = "" + device_cond = module.run_on_device and self.target.is_gpu() + for var in module.read_only_variables(): decl = var.name() module_params += decl if len(module_params) <= 0 else f", {decl}" @@ -246,11 +244,11 @@ class CGen: module_params += decl if len(module_params) <= 0 else f", {decl}" for array in module.arrays(): - decl = f"d_{array.name()}" if module.run_on_device else array.name() + decl = f"d_{array.name()}" if device_cond else array.name() module_params += decl if len(module_params) <= 0 else f", {decl}" for prop in module.properties(): - decl = f"d_{prop.name()}" if module.run_on_device else prop.name() + decl = f"d_{prop.name()}" if device_cond else prop.name() module_params += decl if len(module_params) <= 0 else f", {decl}" self.print(f"{module.name}({module_params});") diff --git a/src/pairs/sim/pbc.py b/src/pairs/sim/pbc.py index bb73102..f4e50b5 100644 --- a/src/pairs/sim/pbc.py +++ b/src/pairs/sim/pbc.py @@ -92,11 +92,11 @@ class SetupPBC(Lowerable): for i in For(sim, 0, nlocal + npbc): pos = positions[i] last_id = nlocal + npbc - last_pos = positions[last_id] grid_length = grid.length(d) # TODO: VecFilter? for _ in Filter(sim, pos[d] < grid.min(d) + cutneigh): + last_pos = positions[last_id] pbc_map[npbc].set(i) pbc_mult[npbc][d].set(1) last_pos[d].set(pos[d] + grid_length) @@ -108,6 +108,7 @@ class SetupPBC(Lowerable): npbc.add(1) for _ in Filter(sim, pos[d] > grid.max(d) - cutneigh): + last_pos = positions[last_id] pbc_map[npbc].set(i) pbc_mult[npbc][d].set(-1) last_pos[d].set(pos[d] - grid_length) -- GitLab