Stella Laurenzo
2d4b0843c1
Fix evaluation message reporting and add checks to tests.
2020-06-29 17:48:17 -07:00
Stella Laurenzo
046751254f
Refactor old tracing tests and remove deprecated ops.
...
* Old doctests to run under lit.
* Old custom filecheck tests -> pytest directory (under lit).
* Rename some old ufunc ops in the tracer.
2020-06-29 16:19:03 -07:00
Stella Laurenzo
7ca292ade5
Add partial evaluator for explicit numpy ufuncs.
...
* This enables emission of "numpy.add(a, b)" and several dozen others.
* Will deprecate original ufunc infra in a follow-on.
2020-06-29 15:27:39 -07:00
Stella Laurenzo
a4f3ce1ed3
Add value coding for ndarray.
...
* This lets us import arrays from the outer environment, which is the first step to actually handling numpy ops.
2020-06-28 18:42:08 -07:00
Stella Laurenzo
bccfd5f6fc
Refactor environment.py into components.
...
* Creates a new top level Configuration class
* Adds a module for creating test configs, getting some hard coding out of core classes
2020-06-28 16:52:25 -07:00
Stella Laurenzo
7bd5733d38
Add "template function" ops and importer code.
...
* This starts to lay down the infra for reasoning about calls
* Adds the importer code to generate IR for function calls of compiler recognized static functions.
2020-06-26 18:36:36 -07:00
Stella Laurenzo
e45287d83e
Rename 'macro' nomenclature to 'partial eval'.
2020-06-26 13:50:51 -07:00
Stella Laurenzo
dd6a4e638b
Add macro facility and use it to enable module and namedtuple attribute resolution.
2020-06-25 23:11:32 -07:00
Stella Laurenzo
5e54bcfc8c
Change test to explicit module level constant.
2020-06-22 18:46:40 -07:00
Stella Laurenzo
e5958d820f
Add constant resolution from globals and builtins.
2020-06-22 18:42:32 -07:00
Stella Laurenzo
f791909a25
Factor name resolution and constant creation to a new environment facility.
2020-06-22 18:15:56 -07:00
Stella Laurenzo
b21b5322f6
Basicpy conversion to IREE+std skeleton and first conversions.
...
* Conversions to std for numeric binary expressions, numeric to_boolean, and numeric comparisons.
* Added folders to constant ops to comply with requirements of the pass system.
* Extended the frontend with parameter/result annotation processing for primitives (can specify types for function arguments).
* Added (empty) directory/sources for IREEVM conversions. These are only enabled if IREE is enabled.
2020-06-13 23:45:43 -07:00
Stella Laurenzo
2ba8296151
Add script tools/format_source.sh and run it on all python and c++ sources.
2020-06-13 14:53:54 -07:00
Stella Laurenzo
c3d4436397
Introduce a Target class and use it to define generic 32 and 64bit variants.
2020-06-13 14:43:10 -07:00
Stella Laurenzo
308a54c3d0
Bump llvm-project to 52cae05e087b3d4fd02849fc37c387c720055ffb (2020/6/10).
...
* Fixes compile errors from upstream.
* XFAIL several tests that are now failing to legalize (will hand off to Sean).
2020-06-11 16:10:05 -07:00
Stella Laurenzo
750541e9a9
Extend type inference so that it works across conditional boundaries.
...
* The implementation is still limited but gives something to build on.
2020-06-10 21:33:17 -07:00
Stella Laurenzo
c84ce17573
Add test showing argument type inference.
2020-06-10 19:23:01 -07:00
Stella Laurenzo
917fd94f94
Add limited support for function arguments.
2020-06-10 19:17:29 -07:00
Stella Laurenzo
e3fd22a035
Add a (very) basic type inference pass for basicpy.
...
For simple programs, this gets us enough typing to lower to real backends.
2020-06-10 19:04:05 -07:00
Stella Laurenzo
432e01fe8f
Move Basicpy and Numpy dialect IR to IR/ folder.
2020-06-09 19:22:24 -07:00
Stella Laurenzo
340f109742
Add implicit return and expression statements where the value id discarded.
2020-06-09 18:34:07 -07:00
Stella Laurenzo
22cbe044c2
Add IfExp emission.
2020-06-09 17:10:52 -07:00
Stella Laurenzo
e18e8e0a96
Add boolean/logical operations (and, or, not).
...
* Adds a new to_boolean op to evaluate a value as a truthy i1
* Uses cascading scf.if ops to properly evaluate and/or sequences (short-circuit and original value returning)
* Adds a helper to construct select ops and uses it to implement 'not'
2020-06-09 00:01:21 -07:00
Stella Laurenzo
b0a80e04f1
Make binary_expr and binary_compare have similar asm syntax.
2020-06-08 18:29:14 -07:00
Stella Laurenzo
1ef3614682
Add support for short-circuit comparisons with scf.if.
2020-06-08 17:52:07 -07:00
Stella Laurenzo
85b724e70c
Adds ODS and import support for binary_expr and binary_compare ops.
...
* Currently only supports non-short-circuit comparisons.
2020-06-08 13:46:06 -07:00
Stella Laurenzo
7c176ed872
Add None constants.
2020-06-07 16:21:00 -07:00
Stella Laurenzo
72499e0319
Add bytes constants.
2020-06-07 16:00:29 -07:00
Stella Laurenzo
a1e6ff4ab7
Add ellipsis constants.
2020-06-07 15:49:39 -07:00
Stella Laurenzo
f3829b1d4f
Add string constants.
2020-06-07 15:46:28 -07:00
Stella Laurenzo
869228e316
Add bool constants.
2020-06-07 15:15:19 -07:00
Stella Laurenzo
8280b86c05
Aggregate all lit test targets under check-npcomp.
2020-06-07 14:35:58 -07:00
Stella Laurenzo
af4466197e
Add lit test suite for python compiler.
...
* Adds a test for simple constants and fixes issues.
2020-06-07 14:29:39 -07:00