fpy2 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fpy2-0.2.0 → fpy2-0.2.2}/PKG-INFO +1 -1
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/__init__.py +9 -0
- fpy2-0.2.2/fpy2/analysis/alias.py +879 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/array_size.py +22 -5
- fpy2-0.2.2/fpy2/analysis/escape.py +103 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/format_infer/__init__.py +8 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/format_infer/analysis.py +901 -50
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/format_infer/format.py +164 -22
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/reaching_defs.py +26 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/type_infer.py +18 -4
- fpy2-0.2.2/fpy2/analysis/value_class.py +707 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/ast/formatter.py +47 -25
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/ast/fpyast.py +20 -10
- fpy2-0.2.2/fpy2/backend/cpp/compiler.py +550 -0
- fpy2-0.2.2/fpy2/backend/cpp/emitter.py +3815 -0
- fpy2-0.2.2/fpy2/backend/cpp/ops.py +98 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/cpp/storage.py +62 -38
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/cpp/storage_infer.py +133 -122
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/cpp/target.py +27 -25
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/cpp/types.py +50 -6
- fpy2-0.2.2/fpy2/backend/cpp/unbox.py +722 -0
- fpy2-0.2.2/fpy2/backend/cpp/utils.py +43 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/fpc.py +37 -12
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/env.py +19 -1
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/frontend/parser.py +10 -25
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/interpret/byte.py +136 -26
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/interpret/interpreter.py +9 -1
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/core.py +11 -34
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/__init__.py +5 -2
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/fixed.py +5 -2
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/mp_fixed.py +55 -10
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/mpb_fixed.py +36 -7
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/engine/real.py +124 -4
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/number/floats.py +16 -3
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/number/reals.py +23 -15
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/ops.py +4 -4
- fpy2-0.2.2/fpy2/strategies/__init__.py +42 -0
- fpy2-0.2.2/fpy2/strategies/context_lift.py +61 -0
- fpy2-0.2.2/fpy2/strategies/fixed_rescale.py +88 -0
- fpy2-0.2.2/fpy2/strategies/float_lower.py +100 -0
- fpy2-0.2.2/fpy2/strategies/free_var.py +55 -0
- fpy2-0.2.2/fpy2/strategies/func_inline.py +92 -0
- fpy2-0.2.2/fpy2/strategies/iter_elim.py +89 -0
- fpy2-0.2.2/fpy2/strategies/loop_split.py +107 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/strategies/loop_unroll.py +69 -1
- fpy2-0.2.2/fpy2/strategies/mono.py +89 -0
- fpy2-0.2.2/fpy2/strategies/neg_zero_unfold.py +98 -0
- fpy2-0.2.2/fpy2/strategies/overflow_unfold.py +111 -0
- fpy2-0.2.2/fpy2/strategies/reduce_fusion.py +46 -0
- fpy2-0.2.2/fpy2/strategies/round_elim.py +57 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/strategies/simple.py +20 -0
- fpy2-0.2.2/fpy2/strategies/special_unfold.py +111 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/__init__.py +7 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/const_fold.py +6 -0
- fpy2-0.2.2/fpy2/transform/enumerate_elim.py +325 -0
- fpy2-0.2.2/fpy2/transform/error.py +23 -0
- fpy2-0.2.2/fpy2/transform/float_to_fixed.py +575 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/for_unroll.py +15 -58
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/func_inline.py +99 -12
- fpy2-0.2.2/fpy2/transform/iter_elim.py +232 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/reduce_fusion.py +3 -3
- fpy2-0.2.2/fpy2/transform/rescale_fixed.py +515 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/specialize.py +198 -74
- fpy2-0.2.2/fpy2/transform/split_loop.py +413 -0
- fpy2-0.2.2/fpy2/transform/unfold_neg_zero.py +316 -0
- fpy2-0.2.2/fpy2/transform/unfold_overflow.py +618 -0
- fpy2-0.2.2/fpy2/transform/unfold_special.py +461 -0
- fpy2-0.2.2/fpy2/transform/utils.py +312 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/while_unroll.py +2 -1
- fpy2-0.2.2/fpy2/transform/zip_elim.py +306 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/location.py +1 -1
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2.egg-info/PKG-INFO +1 -1
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2.egg-info/SOURCES.txt +25 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/pyproject.toml +1 -1
- fpy2-0.2.0/fpy2/backend/cpp/compiler.py +0 -252
- fpy2-0.2.0/fpy2/backend/cpp/emitter.py +0 -2439
- fpy2-0.2.0/fpy2/backend/cpp/ops.py +0 -150
- fpy2-0.2.0/fpy2/backend/cpp/utils.py +0 -77
- fpy2-0.2.0/fpy2/strategies/__init__.py +0 -14
- fpy2-0.2.0/fpy2/strategies/loop_split.py +0 -35
- fpy2-0.2.0/fpy2/transform/split_loop.py +0 -216
- fpy2-0.2.0/fpy2/transform/zip_elim.py +0 -457
- {fpy2-0.2.0 → fpy2-0.2.2}/LICENSE +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/README.md +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/call_graph.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/context_use.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/define_use.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/defs.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/live_vars.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/partial_eval.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/purity.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/reachability.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/analysis/syntax_check.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/ast/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/ast/visitor.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/backend.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/backend/cpp/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/decorator.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/fpc_context.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/frontend/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/frontend/fpc.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/function.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/interpret/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/base.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/eft.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/matrix.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/metrics.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/libraries/vector.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/module.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/context.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/efloat.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/exponential.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/format.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/ieee754.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/mp_float.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/mpb_float.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/mps_float.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/real.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/context/sm_fixed.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/engine/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/engine/engine.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/engine/gmp.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/format.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/globals.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/gmputils.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/native.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/number/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/number/flags.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/number/round.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/primitive.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/applier.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/matcher.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/pattern.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/rewrite.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/rewrite/subst.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/runner.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/copy_propagate.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/dead_code.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/for_bundling.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/for_unpack.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/free_var_elim.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/if_bundling.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/lift_context.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/monomorphize.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/rename_target.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/round_elim.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/simplify_if.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/subst_var.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/transform/while_bundling.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/types.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/__init__.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/bits.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/compare.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/decorator.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/default.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/float_params.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/fractions.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/gensym.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/identifier.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/inspect.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/iterator.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/loader.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/ordering.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/string.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/uninit.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2/utils/unionfind.py +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2.egg-info/dependency_links.txt +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2.egg-info/requires.txt +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/fpy2.egg-info/top_level.txt +0 -0
- {fpy2-0.2.0 → fpy2-0.2.2}/setup.cfg +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"""Program analyses for FPy programs"""
|
|
2
2
|
|
|
3
|
+
from .alias import Alias, AliasAnalysis, AllocSite
|
|
3
4
|
from .array_size import (
|
|
4
5
|
ArraySize,
|
|
5
6
|
ArraySizeAnalysis,
|
|
@@ -19,6 +20,7 @@ from .context_use import (
|
|
|
19
20
|
)
|
|
20
21
|
from .define_use import DefCtx, DefineUse, DefineUseAnalysis, UseSite
|
|
21
22
|
from .defs import DefAnalysis
|
|
23
|
+
from .escape import Escape, EscapeSummary
|
|
22
24
|
from .format_infer import FormatAnalysis, FormatInfer
|
|
23
25
|
from .live_vars import LiveVars
|
|
24
26
|
from .partial_eval import PartialEval, PartialEvalInfo
|
|
@@ -35,3 +37,10 @@ from .reaching_defs import (
|
|
|
35
37
|
)
|
|
36
38
|
from .syntax_check import FPySyntaxError, SyntaxCheck
|
|
37
39
|
from .type_infer import TypeAnalysis, TypeInfer, TypeInferError
|
|
40
|
+
from .value_class import (
|
|
41
|
+
ValueClass,
|
|
42
|
+
ValueClassAnalysis,
|
|
43
|
+
ValueClassInfer,
|
|
44
|
+
class_of,
|
|
45
|
+
representable_classes,
|
|
46
|
+
)
|