Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
82bd351
8343685
eme64 Nov 6, 2024
d69fc7f
first steps using MemPointerDecomposedForm
eme64 Nov 6, 2024
f1ab88d
work on invariant and stub of adr_node_callback
eme64 Nov 6, 2024
56e43c2
Callback refactor with object
eme64 Nov 7, 2024
7cdce79
refactor ignored nodes
eme64 Nov 7, 2024
51960c9
trace flag
eme64 Nov 7, 2024
5fb21ae
fix dump for product
eme64 Nov 7, 2024
b12ce13
find base
eme64 Nov 7, 2024
155dbba
xpointer pulled in to SuperWord
eme64 Nov 7, 2024
e6d7683
first steps in find adjacent - but we need to do dependency graph fir…
eme64 Nov 7, 2024
1b61023
stub for never_overlaps_with, now need trace
eme64 Nov 7, 2024
c79f7fc
tracing wired in
eme64 Nov 7, 2024
f336d84
is_never_in_distance_range
eme64 Nov 8, 2024
92d1b12
rename and introduce definition of NotOrAtDistance
eme64 Nov 8, 2024
50215fd
implement make_not_or_at_distance and has_different_base_but_otherwis…
eme64 Nov 8, 2024
0c4a0ec
simplify base check, by moving it to the 0th summand
eme64 Nov 8, 2024
864fba0
refactor of create adjacent pairs, though body is missing
eme64 Nov 8, 2024
0096d85
refactor create_adjacent_memop_pairs_in_one_group
eme64 Nov 8, 2024
6084b76
XPointer::is_adjacent_to_and_before
eme64 Nov 8, 2024
87cb5e1
start parsing apart MemPointerDecomposedForm for XPointer
eme64 Nov 8, 2024
b860332
manual merge
eme64 Nov 21, 2024
542f1c2
fix native parsing
eme64 Nov 21, 2024
7c5d9b0
parse native base
eme64 Nov 21, 2024
ef41328
base kinds
eme64 Nov 21, 2024
2180ab9
some asserts
eme64 Nov 21, 2024
d36c0a5
con_value -> con and additional description
eme64 Nov 21, 2024
3f9fa3c
more comments
eme64 Nov 21, 2024
3b517fa
renamings in adjust_pre_loop_limit_to_align_main_loop_vectors
eme64 Nov 21, 2024
62b6ec0
remane offset -> con
eme64 Nov 21, 2024
b548aa4
rename scale -> iv_scale
eme64 Nov 21, 2024
5fdd958
use XPointer in adjust_pre_loop_limit_to_align_main_loop_vectors, WIP
eme64 Nov 21, 2024
960c1f5
add TODO
eme64 Nov 21, 2024
81bc5b4
fix invalid case for XPointer::never_overlaps_with
eme64 Nov 21, 2024
1e0cc13
rm unnecessary assert
eme64 Nov 21, 2024
8644ff7
rename stride -> iv_stride
eme64 Nov 21, 2024
6774401
fix build
eme64 Nov 21, 2024
ac115c5
pipe in XPointer to AlignmentSolver
eme64 Nov 22, 2024
3f62dc1
use XPointer for VMemoryRegion
eme64 Nov 22, 2024
1c4496f
move overlap_possible_with_any_in
eme64 Nov 22, 2024
0b5302c
rm VPointer
eme64 Nov 22, 2024
af148eb
XPointer -> VPointer
eme64 Nov 22, 2024
a834c07
rename offset -> con
eme64 Nov 22, 2024
0e59a74
rm con field
eme64 Nov 22, 2024
179bcb4
rename scale -> iv_scale
eme64 Nov 22, 2024
7ec9cc7
replace iv_scale field with delegation
eme64 Nov 22, 2024
e9bffd6
replace base field with delegation
eme64 Nov 22, 2024
9e7eac0
rn 2 more fields
eme64 Nov 22, 2024
85774cc
for_each_invar_summand first version
eme64 Nov 22, 2024
a27eee6
add vloop to vpointer, and some printing
eme64 Nov 22, 2024
00b442d
invar_factor
eme64 Nov 22, 2024
2964554
trace_start_solve
eme64 Nov 22, 2024
18461de
rm _invar field
eme64 Nov 22, 2024
40e39a0
pass vpointer for invar and iv_scale
eme64 Nov 22, 2024
4302768
rm iv_scale field, add assert for TODO
eme64 Nov 22, 2024
cf78fd2
fix invar check
eme64 Nov 25, 2024
606ebf9
rm invar in AlignmentSolution
eme64 Nov 25, 2024
7a50c76
fix invar in adjust_pre_loop_limit_to_align_main_loop_vectors
eme64 Nov 25, 2024
2ba13b9
fix large stride and scale
eme64 Nov 26, 2024
904d709
rm useless TODOs
eme64 Nov 26, 2024
8fa0c5b
route in trace
eme64 Nov 26, 2024
850de72
refactor out aliasing to MemPointerDecomposedFormParser
eme64 Nov 26, 2024
70793a2
cleanup
eme64 Nov 26, 2024
08ab412
more cleanup
eme64 Nov 26, 2024
3a8d07e
MemPointer renaming
eme64 Nov 26, 2024
4d6b0c2
rename decomposed_form -> mem_pointer
eme64 Nov 26, 2024
ad82ff3
move parsing
eme64 Nov 26, 2024
1c861a7
rm old MemPointer
eme64 Nov 26, 2024
3241657
unify naming of trace
eme64 Nov 26, 2024
86724a4
better parsing trace
eme64 Nov 26, 2024
cc0d79e
cleanup
eme64 Nov 26, 2024
31896bd
refactor invariant check
eme64 Nov 26, 2024
4b73d57
renaming
eme64 Nov 26, 2024
6e1aa80
empty callback
eme64 Nov 26, 2024
cb810b4
rm empty_callback
eme64 Nov 26, 2024
ba9298f
fix build
eme64 Nov 26, 2024
905bcb1
refactor sorting
eme64 Nov 26, 2024
aac5bfa
impl make_with_size
eme64 Nov 27, 2024
3c6da49
rm unnecessary size field
eme64 Nov 27, 2024
73ddd9d
refactor VPointer ctor
eme64 Nov 27, 2024
352da42
more trace
eme64 Nov 27, 2024
b1374e5
route VPointer into MemVector
eme64 Nov 27, 2024
27817ac
fix some printing
eme64 Nov 27, 2024
b146032
more refactoring
eme64 Nov 27, 2024
262d0fb
resource allocate VMemoryRegion
eme64 Nov 27, 2024
433163c
fix comments
eme64 Nov 27, 2024
0d6f13a
make_with_iv_offset impl
eme64 Nov 27, 2024
b9a3cba
cleanup and fix
eme64 Nov 27, 2024
c7d8444
add test for con overflow in SuperWordStoreToLoadForwardingFailureDet…
eme64 Nov 27, 2024
c578f74
fix invalid case in make_with_iv_offset
eme64 Nov 27, 2024
8a1a376
fix nullptr
eme64 Nov 27, 2024
3cfc86e
SuperWord::unrolling_analysis parse all with VPointer
eme64 Nov 27, 2024
62d1a9c
turn assert into check
eme64 Nov 27, 2024
c887b6b
overlap with invalid VPointer
eme64 Nov 27, 2024
87c4df1
one more case works!
eme64 Nov 27, 2024
f8ff7ce
manual merge
eme64 Nov 27, 2024
ae36e24
copy array instead of initializing
eme64 Nov 27, 2024
edfffc8
fix some invar sorting cases... but not all!
eme64 Nov 27, 2024
52053a6
unlock diagnostics for test
eme64 Nov 28, 2024
80dd0a1
find MemorySegment address
eme64 Nov 28, 2024
7adcb6f
fix base casting
eme64 Nov 28, 2024
dbdab49
rm assert and add comments
eme64 Nov 28, 2024
046a949
fix up test
eme64 Nov 28, 2024
dafce88
update comments
eme64 Nov 28, 2024
539b50d
check if field not found
eme64 Nov 29, 2024
db4b0d1
some comment and naming improvements
eme64 Nov 29, 2024
133b146
make sort stable
eme64 Dec 1, 2024
a0efd8c
Merge branch 'master' into JDK-8343685-VPointer-MemPointer
eme64 Dec 1, 2024
71eefe9
hide parser via delegation
eme64 Dec 1, 2024
d6bf696
improve documentation
eme64 Dec 1, 2024
b5de584
add TestEquivalentInvariants.java
eme64 Dec 1, 2024
0baa1f9
fix up print
eme64 Dec 2, 2024
4b3c7d2
rename
eme64 Dec 2, 2024
4ef7cee
fix printing
eme64 Dec 13, 2024
4b0504d
manual merge
eme64 Dec 13, 2024
9645a89
Merge branch 'master' into JDK-8343685-VPointer-MemPointer
eme64 Jan 3, 2025
b64f929
copyright 2025
eme64 Jan 3, 2025
2cf3e87
for vnkozlov part 1
eme64 Jan 14, 2025
4009028
for vnkozlov part 2
eme64 Jan 14, 2025
230d7f1
for vnkozlov part 3
eme64 Jan 14, 2025
84e8ce0
for vnkozlov part 4
eme64 Jan 14, 2025
4d85768
for vnkozlov part 5
eme64 Jan 14, 2025
ec938c3
for vnkozlov part 6
eme64 Jan 14, 2025
7f10162
Merge branch 'master' into JDK-8343685-VPointer-MemPointer
eme64 Jan 14, 2025
27eba3d
More fixes for vnkozlov
eme64 Jan 15, 2025
5bca8e2
Apply suggestions from code review by Christian
eme64 Jan 15, 2025
18c7933
better comments for Christian
eme64 Jan 15, 2025
9a38813
More comments for Christian
eme64 Jan 16, 2025
decf4c8
remove dead code left behind after JDK-8311691
eme64 Jan 16, 2025
78857e8
split init_is_valid
eme64 Jan 16, 2025
91ff3cc
rename to has_same_invar_summands_and_iv_scale_as
eme64 Jan 16, 2025
51c18b7
refactor to has_invar_summands and print invar and fix non-product gu…
eme64 Jan 16, 2025
fcbef42
Batch 2 for Christian
eme64 Jan 16, 2025
a8b79af
Apply suggestions from code review by Christiain
eme64 Jan 18, 2025
8f09320
for Christian
eme64 Jan 18, 2025
b5e4501
fix indent
eme64 Jan 18, 2025
79440e4
Merge branch 'master' into JDK-8343685-VPointer-MemPointer
eme64 Jan 18, 2025
714298b
fix guard
eme64 Jan 18, 2025
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
4 changes: 3 additions & 1 deletion src/hotspot/share/classfile/vmSymbols.hpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand Down Expand Up @@ -356,6 +356,8 @@ class SerializeClosure;
template(jdk_internal_foreign_abi_VMStorage_array_array_signature, "[[Ljdk/internal/foreign/abi/VMStorage;") \
template(jdk_internal_foreign_abi_CallConv, "jdk/internal/foreign/abi/UpcallLinker$CallRegs") \
\
template(jdk_internal_foreign_NativeMemorySegmentImpl, "jdk/internal/foreign/NativeMemorySegmentImpl") \
\
/* Support for JVMCI */ \
JVMCI_VM_SYMBOLS_DO(template, do_alias) \
\
Expand Down
23 changes: 12 additions & 11 deletions src/hotspot/share/opto/memnode.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2859,16 +2859,16 @@ class MergePrimitiveStores : public StackObj {
return is_trace(TraceMergeStores::Tag::BASIC);
}

bool is_trace_pointer() const {
return is_trace(TraceMergeStores::Tag::POINTER);
bool is_trace_pointer_parsing() const {
return is_trace(TraceMergeStores::Tag::POINTER_PARSING);
}

bool is_trace_aliasing() const {
return is_trace(TraceMergeStores::Tag::ALIASING);
bool is_trace_pointer_aliasing() const {
return is_trace(TraceMergeStores::Tag::POINTER_ALIASING);
}

bool is_trace_adjacency() const {
return is_trace(TraceMergeStores::Tag::ADJACENCY);
bool is_trace_pointer_adjacency() const {
return is_trace(TraceMergeStores::Tag::POINTER_ADJACENCY);
}

bool is_trace_success() const {
Expand Down Expand Up @@ -2939,12 +2939,13 @@ bool MergePrimitiveStores::is_adjacent_pair(const StoreNode* use_store, const St

ResourceMark rm;
#ifndef PRODUCT
const TraceMemPointer trace(is_trace_pointer(),
is_trace_aliasing(),
is_trace_adjacency());
const TraceMemPointer trace(is_trace_pointer_parsing(),
is_trace_pointer_aliasing(),
is_trace_pointer_adjacency(),
true);
#endif
const MemPointer pointer_use(use_store NOT_PRODUCT( COMMA trace ));
const MemPointer pointer_def(def_store NOT_PRODUCT( COMMA trace ));
const MemPointer pointer_use(use_store NOT_PRODUCT(COMMA trace));
const MemPointer pointer_def(def_store NOT_PRODUCT(COMMA trace));
return pointer_def.is_adjacent_to_and_before(pointer_use);
}

Expand Down
Loading