Skip to content

Support break in loop code generation#191

Open
KingParmenides wants to merge 1 commit into
Syncleus:masterfrom
KingParmenides:fix-break-codegen-93
Open

Support break in loop code generation#191
KingParmenides wants to merge 1 commit into
Syncleus:masterfrom
KingParmenides:fix-break-codegen-93

Conversation

@KingParmenides
Copy link
Copy Markdown

Fixes #93.

Summary:

  • Fold javac if-then-goto loop break bytecode into an if composite before loop folding.
  • Track active loop break targets while writing loop bodies and emit break for matching forward gotos.
  • Update Break and ForBreak codegen tests to expect generated OpenCL instead of ClassParseException.

Validation:

  • mvn -q -Dmaven.repo.local=/private/tmp/aparapi-m2 -DsecondaryCacheDir=/private/tmp/aparapi-zinc-jdk11 -DargLine="-XX:+IgnoreUnrecognizedVMOptions" -Dtest=BreakTest,ForBreakTest,ContinueTest,MultiContinueTest test
  • mvn -q -Dmaven.repo.local=/private/tmp/aparapi-m2 -DsecondaryCacheDir=/private/tmp/aparapi-zinc-jdk11 -DargLine="-XX:+IgnoreUnrecognizedVMOptions" -Dtest=com.aparapi.codegen.test.*Test,!com.aparapi.codegen.test.If_While_Else_WhileTest test
  • mvn -q -Dmaven.repo.local=/private/tmp/aparapi-m2 -DsecondaryCacheDir=/private/tmp/aparapi-zinc-jdk11 -DargLine="-XX:+IgnoreUnrecognizedVMOptions" -DskipTests package
  • git diff --check

Note: If_While_Else_WhileTest fails on clean HEAD in this environment with NullPointerException, so I excluded only that known failing class from the broad codegen run.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bounty $20] Break in loop causes kernel to hang

1 participant