Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move optimizer to linq4j, improve translation of strict functions #249

Closed
wants to merge 2 commits into from

Conversation

vlsi
Copy link
Collaborator

@vlsi vlsi commented Apr 14, 2014

No description provided.

@vlsi
Copy link
Collaborator Author

vlsi commented Apr 19, 2014

Here is the updated PR.

Notable improvements:

  1. Shortcut in CAST translation: when source type is equal to target type, avoid code generation (it used to generate things like bool == null ? null : bool)
  2. NullAs support for CASE. I've identified that lots of inefficiencies in generated code are due to improper case translation: case ... end IS NULL should pass is null inside to optimize the check (i.e. use unboxed primitives, STRICT optimizations, etc)

@julianhyde
Copy link
Owner

Thanks! As I said on the optiq-dev list, I'll release linq4j in the next
few days, including all of your recent PRs, then merge this optiq PR.

On Sat, Apr 19, 2014 at 2:06 PM, Vladimir Sitnikov <notifications@github.com

wrote:

Here is the updated PR.

Notable improvements:

  1. Shortcut in CAST translation: when source type is equal to target
    type, avoid code generation (it used to generate things like bool == null
    ? null : bool)
  2. NullAs support for CASE. I've identified that lots of inefficiencies
    in generated code are due to improper case translation: case ... end IS
    NULL should pass is null inside to optimize the check (i.e. use unboxed
    primitives, STRICT optimizations, etc)


Reply to this email directly or view it on GitHubhttps://github.com//pull/249#issuecomment-40880711
.

…tatic final constants generated by linq4j
@julianhyde
Copy link
Owner

Rebased as cff9fb0.

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.

2 participants