Skip to content

Commit

Permalink
Revert "Revert "Merge branch 'arrays' into 'master'""
Browse files Browse the repository at this point in the history
This reverts commit d98a3b2.
  • Loading branch information
certik committed Apr 2, 2021
1 parent 1d4e32d commit a3b4a3e
Show file tree
Hide file tree
Showing 8 changed files with 907 additions and 56 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ CPackSourceConfig.cmake
## libraries
*.a
*.so
*.s
*.ll

## Generated files
version
Expand Down
2 changes: 1 addition & 1 deletion integration_tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ RUN(NAME types_06 LABELS gfortran llvm cpp)
# GFortran + LFortran C++
RUN(NAME doconcurrentloop_01 LABELS gfortran cpp)

RUN(NAME arrays_01 LABELS gfortran cpp)
RUN(NAME arrays_01 LABELS gfortran cpp llvm)
RUN(NAME arrays_03 LABELS gfortran cpp)
RUN(NAME arrays_04 LABELS gfortran cpp)
RUN(NAME arrays_05 LABELS gfortran cpp)
Expand Down
351 changes: 296 additions & 55 deletions src/lfortran/codegen/asr_to_llvm.cpp

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions tests/reference/asr-arrays_01-5f1c776.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"basename": "asr-arrays_01-5f1c776",
"cmd": "lfortran --show-asr --no-color {infile} -o {outfile}",
"infile": "tests/../integration_tests/arrays_01.f90",
"infile_hash": "f7df4142feb383f836dfa072a60673922e8873b5695f893be8329b89",
"outfile": null,
"outfile_hash": null,
"stdout": "asr-arrays_01-5f1c776.stdout",
"stdout_hash": "bdcb5a64ee0c0f7be2f798e0815faadeaad99523d1d1bbfb880caa4d",
"stderr": null,
"stderr_hash": null,
"returncode": 0
}
1 change: 1 addition & 0 deletions tests/reference/asr-arrays_01-5f1c776.stdout
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(TranslationUnit (SymbolTable 1 {arrays_01: (Program (SymbolTable 2 {a: (Variable 2 a Local () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))]) Source Public), b: (Variable 2 b Local () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))]) Source Public), i: (Variable 2 i Local () Default (Integer 4 []) Source Public)}) arrays_01 [] [(DoLoop ((Var 2 i) (ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ()) [(= (ArrayRef 2 a [(() (Var 2 i) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) (BinOp (Var 2 i) Add (ConstantInteger 10 (Integer 4 [])) (Integer 4 [])))]) (If (Compare (ArrayRef 2 a [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) NotEq (ConstantInteger 11 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 a [(() (ConstantInteger 2 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) NotEq (ConstantInteger 12 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 a [(() (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) NotEq (ConstantInteger 13 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (DoLoop ((Var 2 i) (ConstantInteger 11 (Integer 4 [])) (ConstantInteger 14 (Integer 4 [])) ()) [(= (ArrayRef 2 b [(() (BinOp (Var 2 i) Sub (ConstantInteger 10 (Integer 4 [])) (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (Var 2 i))]) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 11 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 2 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 12 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 13 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 4 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 14 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (DoLoop ((Var 2 i) (ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ()) [(= (ArrayRef 2 b [(() (Var 2 i) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (BinOp (ArrayRef 2 a [(() (Var 2 i) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) Sub (ConstantInteger 10 (Integer 4 [])) (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])))]) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 1 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 2 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 2 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 3 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (= (ArrayRef 2 b [(() (ConstantInteger 4 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (BinOp (BinOp (BinOp (ArrayRef 2 b [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) Add (ArrayRef 2 b [(() (ConstantInteger 2 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) Add (ArrayRef 2 b [(() (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) Add (ArrayRef 2 a [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))])) (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))]))) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 4 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 17 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] []) (= (ArrayRef 2 b [(() (ConstantInteger 4 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) (ArrayRef 2 a [(() (ConstantInteger 1 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))]))) (If (Compare (ArrayRef 2 b [(() (ConstantInteger 4 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 4 (Integer 4 [])))])) NotEq (ConstantInteger 11 (Integer 4 [])) (Logical 4 [])) [(ErrorStop ())] [])])}) [])
13 changes: 13 additions & 0 deletions tests/reference/llvm-arrays_01-84fd69c.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"basename": "llvm-arrays_01-84fd69c",
"cmd": "lfortran --show-llvm {infile} -o {outfile}",
"infile": "tests/../integration_tests/arrays_01.f90",
"infile_hash": "f7df4142feb383f836dfa072a60673922e8873b5695f893be8329b89",
"outfile": null,
"outfile_hash": null,
"stdout": "llvm-arrays_01-84fd69c.stdout",
"stdout_hash": "eacbc76610060445e868abaaffc9aaf9861ac76fc67062913b2f1ac8",
"stderr": null,
"stderr_hash": null,
"returncode": 0
}
Loading

0 comments on commit a3b4a3e

Please sign in to comment.