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

CMake: Update compiler to use .nasm assembly files #1

Merged
merged 0 commits into from
Nov 7, 2018

Conversation

dnakamura
Copy link

Signed-off-by: Devin Nakamura [email protected]

@nbhuiyan
Copy link
Owner

nbhuiyan commented Nov 5, 2018

@dnakamura , perhaps updating the filenames as part of eclipse-openj9#3293 would prevent the temporary Travis CI breakage?

nvm, I just realized that you are opening a PR against my branch

@nbhuiyan nbhuiyan merged this pull request into nbhuiyan:nasm-linux Nov 7, 2018
@dnakamura dnakamura deleted the nasm_patch branch July 10, 2019 15:50
nbhuiyan pushed a commit that referenced this pull request Aug 19, 2020
This commit removes one instruction from the code generated by
asynccheckEvaluator() for AArch64.
(mov regY, #-1 + cmp regX, regY -> cmn regX, #1)

Signed-off-by: KONNO Kazuhiro <[email protected]>
nbhuiyan pushed a commit that referenced this pull request Dec 21, 2022
Disable CLassLookahead because it is possible for static final field
value to be changes via reflection or the unsafe API.

1. Disable ClassLookahead. Similar to GVP, ClassLookahead is using
static analysis of static final field initialization code to provide
field information that is later used to make assumptions about the
field contents which might not be true if reflection or the unsafe
API is used to change static final field values. An environment
variable is introduced to allow ClassLookahead to be re-enable.

2. Apply a fix to ClassLookahead so that it does not not generate field
information for static final fields that can be initialized with
different values on different code paths. This fix is being applied in
case the ClassLookahead code is resurrected in the future since `#1`
above has disabled it globally.

3.Remove the code in IlGen what would replace array length checks with
hard coded obj array length values. This code would look for static
final fields that contain ClassLookahead fieldInfo and use the existence
of that information to permit the inspection of a heap object and
replace array length checks with a constant based on the current heap
object's array length. This fix is also applied as a safety measure
because the disabling of ClassLookahead (`#2` above) would effectively
disable this code path.

In general the only safe way to inspect at compile time heap objects
pointed to by static final fields is to us the "Static Final Field
Folding" optimization which uses OSR to invalidate any code which made
an assumptions based on the contents of a static final field when that
fields contents may have been modified by reflection.

Signed-off-by: Kevin Langman <[email protected]>
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