Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
e8b9fe0
8318446
eme64 Oct 18, 2023
6576b5d
first version of test
eme64 Oct 18, 2023
6d2830a
passing test TestMergeStores.java
eme64 Oct 19, 2023
ad36aa0
added extra phase, still debugging
eme64 Oct 19, 2023
cc78c7b
redo RC and more things
eme64 Oct 23, 2023
0be5cc4
casting issues
eme64 Oct 23, 2023
976492c
whitespace and a few more tests
eme64 Oct 23, 2023
47d15cb
short tests
eme64 Oct 23, 2023
aea572d
int and long tests
eme64 Oct 23, 2023
1d879c7
renambe benchmark
eme64 Oct 23, 2023
5ffb650
manual merge from master
eme64 Oct 23, 2023
6228537
remove ConvI2L Identity optimization - it is problematic
eme64 Oct 24, 2023
e894282
empty line
eme64 Oct 24, 2023
a6566e6
improved address comparison
eme64 Oct 24, 2023
cfed5ba
check if adr is not AddP
eme64 Oct 24, 2023
874c127
fix hash deletion assert
eme64 Oct 24, 2023
2728370
fix long shift issue
eme64 Oct 25, 2023
4d9b3db
unsafe only shows class on some platforms
eme64 Oct 25, 2023
365aaaf
Merge branch 'master' into JDK-8318446
eme64 Oct 25, 2023
631ceeb
Removed RC collapsing. Instead, I now look through RC
eme64 Nov 1, 2023
3ab2729
fix bad if problem
eme64 Nov 1, 2023
23ff845
improved the benchmark
eme64 Nov 2, 2023
c2ca305
add LE-API to bench
eme64 Nov 8, 2023
c70b846
rename array
eme64 Nov 8, 2023
974fc9b
add short and int examples to bench
eme64 Nov 8, 2023
b8024ba
swap number and type
eme64 Nov 8, 2023
da39822
make sure the unsafe accesses are always recognized
eme64 Nov 8, 2023
25edcb4
Merge branch 'master' into JDK-8318446
eme64 Nov 8, 2023
7be8c42
merge manually
eme64 Jan 15, 2024
adca9e2
fix flag initialization issue
eme64 Jan 16, 2024
e5a9341
Add Release/Volatile/Opaque store test, limit optimization to little-…
eme64 Jan 23, 2024
42a24bd
remove commented out debug code
eme64 Jan 26, 2024
83290c5
Add diagnostic flag MergeStores
eme64 Jan 26, 2024
85c9aa3
Suggestions by Tobias
eme64 Jan 29, 2024
8822fb6
made trace flag develop
eme64 Jan 29, 2024
2a660e0
add UseUnalignedAccesses for shipilev
eme64 Jan 30, 2024
0151731
New version with ArrayPointer
eme64 Feb 22, 2024
f310e7a
cosmetic fixes
eme64 Feb 22, 2024
0522e4b
fix invalid case
eme64 Feb 22, 2024
c272894
make it happen in post_loop_opts
eme64 Feb 22, 2024
8b3a276
add test300
eme64 Feb 23, 2024
bacdba0
mismatched access test
eme64 Mar 4, 2024
9e642aa
allow only array stores of same type as container
eme64 Mar 4, 2024
638c80f
WIP test with out of bounds exception
eme64 Mar 4, 2024
4a3ee85
fix test for trapping examples
eme64 Mar 5, 2024
07c233f
Merge branch 'master' into JDK-8318446
eme64 Mar 5, 2024
796d950
a little bit of casting for debug printing code
eme64 Mar 5, 2024
d97fa2b
Merge branch 'master' into JDK-8318446
eme64 Apr 3, 2024
118c366
WIP refactoring, in broken state
eme64 Apr 3, 2024
de4d90a
is_adjacent_input_pair
eme64 Apr 4, 2024
2ea6973
refactor combining the stores
eme64 Apr 4, 2024
b68789f
fixed small issue
eme64 Apr 4, 2024
b282ea3
fixed small issue v2
eme64 Apr 4, 2024
318608c
cfg_status_for_pair refactoring
eme64 Apr 4, 2024
fa3ebc9
add IR rule to two tests
eme64 Apr 4, 2024
6677eca
rm dead code
eme64 Apr 4, 2024
8b344e3
some cosmetics
eme64 Apr 4, 2024
763a2f6
merged_input_value
eme64 Apr 4, 2024
6d3ab7e
a bit more stuff
eme64 Apr 4, 2024
330d674
improve comments
eme64 Apr 4, 2024
637b368
improve comments, and extract collect_merge_list
eme64 Apr 5, 2024
52d8cf8
extract make_merged_store
eme64 Apr 5, 2024
6cd7c34
renamings
eme64 Apr 5, 2024
acb06ea
beautify and ASCII art for make_merged_store
eme64 Apr 5, 2024
920bb26
extract trace
eme64 Apr 5, 2024
c548fe8
extract Status::make
eme64 Apr 5, 2024
c85cce1
handle UseUnalignedAccesses in test, and a few cosmetics
eme64 Apr 5, 2024
d622c57
fix copyright, add comment about RCE and RC smearing
eme64 Apr 15, 2024
93bf2dd
improve RC comment for Vladimir
eme64 Apr 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions make/test/BuildMicrobenchmark.gmk
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ $(eval $(call SetupJavaCompilation, BUILD_JDK_MICROBENCHMARK, \
--add-exports java.base/jdk.internal.event=ALL-UNNAMED \
--add-exports java.base/jdk.internal.foreign=ALL-UNNAMED \
--add-exports java.base/jdk.internal.misc=ALL-UNNAMED \
--add-exports java.base/jdk.internal.util=ALL-UNNAMED \
--add-exports java.base/jdk.internal.org.objectweb.asm.tree=ALL-UNNAMED \
--add-exports java.base/jdk.internal.org.objectweb.asm=ALL-UNNAMED \
--add-exports java.base/jdk.internal.vm=ALL-UNNAMED \
Expand Down
4 changes: 2 additions & 2 deletions src/hotspot/share/opto/addnode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -724,9 +724,9 @@ Node* AddPNode::Ideal_base_and_offset(Node* ptr, PhaseValues* phase,
//------------------------------unpack_offsets----------------------------------
// Collect the AddP offset values into the elements array, giving up
// if there are more than length.
int AddPNode::unpack_offsets(Node* elements[], int length) {
int AddPNode::unpack_offsets(Node* elements[], int length) const {
int count = 0;
Node* addr = this;
Node const* addr = this;
Node* base = addr->in(AddPNode::Base);
while (addr->is_AddP()) {
if (addr->in(AddPNode::Base) != base) {
Expand Down
2 changes: 1 addition & 1 deletion src/hotspot/share/opto/addnode.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ class AddPNode : public Node {

// Collect the AddP offset values into the elements array, giving up
// if there are more than length.
int unpack_offsets(Node* elements[], int length);
int unpack_offsets(Node* elements[], int length) const;

// Do not match base-ptr edge
virtual uint match_edge(uint idx) const;
Expand Down
6 changes: 6 additions & 0 deletions src/hotspot/share/opto/c2_globals.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,12 @@
notproduct(bool, TraceNewVectors, false, \
"Trace creation of Vector nodes") \
\
product(bool, MergeStores, true, DIAGNOSTIC, \
"Optimize stores by combining values into larger store") \
\
develop(bool, TraceMergeStores, false, \
"Trace creation of merged stores") \
\
product_pd(bool, OptoBundling, \
"Generate nops to fill i-cache lines") \
\
Expand Down
1 change: 1 addition & 0 deletions src/hotspot/share/opto/compile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -930,6 +930,7 @@ Compile::Compile( ciEnv* ci_env,
_directive(directive),
_log(ci_env->log()),
_first_failure_details(nullptr),
_for_post_loop_igvn(comp_arena(), 8, 0, nullptr),
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably need to do this in a separate RFE. Looks like a few data-structures get allocated over comp_arena in one constructor and ResourceArea in the other.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still relevant?

_congraph(nullptr),
NOT_PRODUCT(_igv_printer(nullptr) COMMA)
_unique(0),
Expand Down
Loading