►
From YouTube: OMR Compiler Architecture Meeting 20180801
Description
This Compiler Architecture meeting discussed adding new IL opcodes for read barriers and FMA operations.
Please add any comments/questions to the GitHub agenda issue: https://github.com/eclipse/omr/issues/2817
C
So
we're
proposing
to
add
the
power
of
code
of
two
recent
development
items.
One
of
them
is
for
debugging
purpose
to
report
all
the
field,
access
to
VM
and
the
other
one
is
for
pause
list
GC,
where,
whenever
we
load
and
dressed
hypotheses
people
are
going
to
cause
to
the
end,
to
a
success
of
whether
if
the
object,
the
object
is
were
in
mood
and
so
those
in
in
both
case,
the
field
load
would
have
side
effect.
So
we
we
want
to
create
new
op
codes
to
represent
both
the
load
value
and
the
side
effects.
C
C
C
D
C
In
in
case
of
in
some
recent
publicity,
it
would
be
two
extra
instruction
to
do
a
bunch
edge
to
check
if
the
object
is
in
the
valid
G
Val
HD
region
and
if
not
called
to
the
DM
CalPERS
and
full
report
for
the
dependent
purpose.
For
the
other
items
for
the
father,
we
will
call
every
time
we
do
a
few
to
read.
We
would
call
out
to
VM
helper
to
report
the
read
and
then
to
the
normal
load
and
come
back.
C
One
is
not
it's:
both
of
them
use
a
rebar.
D
B
C
C
E
E
In
general,
it's
useful
for
GT,
just
like
we
have
right
barriers
on
or
I
think,
there's
Alex
mentioned
previously
from
the
GC
team
on
open
j9,
but
there's
other
flavors
of
garbage
collections,
which
do
it
by
Reed
barriers
from
the
middle,
especially
dictate
in
Egypt
today.
Similarly,
to
how
we
have
card
marking
for
right
there,
yours.
E
E
E
D
E
A
A
E
A
F
A
C
D
C
D
C
C
C
F
F
F
E
C
D
E
I'm
not
sure
what
what
this
for
this
loving
commenting
of
loads,
that
our
readers,
you
have
to
have
those
every
common
to
use.
The
results
treat.
F
D
E
F
C
B
C
D
F
Anchored
to
a
treat,
that's
always
anchor
to
a
treat.
All
that
kind
of
like
saying
it's
Raph
count
will
be
too,
but
never
more
than
two.
They
were
less
than
two.
Never
more
than
this
won't
consider
it
there's
one
yeah,
there's
a
tree
top
anchor.
That's
not
a
real
consumer,
though
there's
a
real
consumer
who
consumes
it
yeah
that
count
becomes
to
yes
and
never
increases.
E
F
F
E
F
E
E
Production
today,
which
is
also
GC
on
on
dead,
yes
and
our
reads-
behave
exactly
like
every
other
read
in
the
compiler,
except
that
the
very
first
read
has
to
appear
under
a
tree
top
anchor.
That's
it
that's
the
only
restriction,
so
I,
don't
understand
why
you
would
have
to
prevent
common
email.
Also
reads:
area
like
our
reach
can
have
rep
count
that
you
want
so
follow
along
as
the
very
first
one
appears
on
our
tree
top.
That
ensures
that
our
reads
very
evaluator
will
generate
the
correct
hardware,
repair
your
sequence.
E
So
guess
the
question
is
in
the
debug
scenario:
did
you
want
kids
code
necessarily
produce
the
same
Stonefield,
the
event
interpreter
women
right
and
if
that's
the
case,
I
mean
we
should
disable
optimizations
rather
than
limit
what
the
spec
pretty
il
is.
That
seems
like
a
knob
on
the
performance
versus
observability
spectrum.
I,
think
you
could
imagine
people
who
would
want
to
see
every
read
and
you
know
screw.
E
E
F
In
so
you
can
turn
off
local
TV
and
you're
right.
All
the
ordering
would
be
exactly
how
it
needs
to
be,
but
that's
not
the
only
way
you
can
achieve
done
in
trees.
I
mean
local
TV
does
local
copy
propagation
as
well
as
local
khamenei,
just
they're
tough.
You
could
continue
to
do
local
copy
propagation.
E
There
is
in
one
scenario
you
are
coming
in
and
yell
when
you
don't,
how
do
you
define
Gail
repetition
is,
does
the
opcode
requires
you
would
not
comment
or
not
I'll
be
proper
year
or
whatever,
or
is
that
just
an
option
or
trick,
and
it's
actually
an
option?
Whatever
scenario
you
imagine,
your
VM
work.
E
E
This
case
sure
for
those
bmz
would
enable
local,
50
and
quiet
it
didn't
seem
so
much
a
property,
the
opcode
assaults
by
property,
of
what
I
think,
what
we
want
to
represent
is
the
very
first
time
you're
reading
it
you're
accessing
memory,
and
you
need
to
do
something
after
you've
read
it
and
it's
in
a
register
use
it.
However,
you
want
that's
totally
fine
you're,
just
moving
a
value
around
you're,
not
loading
anything
from
memory
in.
D
C
C
E
Answer
goes
back
to
the
MT,
either
nothing
like
good
answer
or
that
it's
some
Java
centric
requirement.
That's
not
a
good
enough
answer.
How's
the
ball
posted
behaving
Omar.
It's
an
argument
to
say
that
off
code
needs
to
support
what
open
j9
needs
with
this
whole
food,
but
it
doesn't
necessarily
employ
the
health
code
has
to
do
exactly
that
in.
E
F
C
F
F
E
E
E
What
are
its
properties
serrated
the
whole
floor
for
crazy
on
the
difficulty
with
had
without
having
a
read
barrier.
Opcode
was
that
we
were
kind
of
mimicking
it
by
anchoring
the
first
load
at
Cochin
time
and
the
reason
we
had
to
do
this
was
because
a
normal
load
appear
anywhere
the
first
time
and
in
code
generator
we
have
tons
of
sequences,
wait,
wait
pattern
match,
you
know
some
tree
sequence
or
with
full
things
into
memory,
references,
etc,
stuff
that
you
can't
do
on
the
instruction
which
actually
needs
to
generate
the
read
barrier.
E
So
we
have
to
know
exactly
the
first
time
we
feel
alone.
We
can't
use
like
load
and
add,
does
that
flavor
of
instruction
doesn't
exist
for
a
reader
or
a
particular
architecture.
Also,
they
need
to
be
anchored
in
a
treetop
so
that
we
can
recognize.
Okay,
I
need
to
generate
a
very
simple
vanilla,
read,
barrier
load
and
then,
after
that,
in
common
entity,
whatever
you
want
it,
but
as
long
as
the
very
first
one
appears
underneath
the
garden
load
instruction
for
architecture
that
was
kind
of
a
big
difficulty.
E
Has
been
a
means,
we
have
to
disable
a
couple
of
other
optimizations.
We
win
for
example,
or
are
not
yet
especially
I
hold
up,
and
my
index
and
base
are
the
same.
It's
a
multiplication
by
two,
so
I
just
folded
into
that
those
types
of
all
all
those
have
to
be
disabled
for
read,
barriers,
there's
a
whole
bunch
of
cases
in
the
coaching
or
we'd
say:
okay.
Are
we
generating
read
barriers?
Is
this
one
of
these
special
ones?
Don't
do
this
all
right
away,
which
would
be
a
lot
easier?
E
F
E
Carefully
time,
yeah
and
shouldn't
yeah
there's
no
reason
why
the
patient
care,
just
the
value,
doesn't
give
use
whatever
you
have
to
do
associate
with
that
local
and
use
it
all
USB.
All
we
care
about
is
we
need
to
very
first
time.
We
load
this
thing
from
memory
right
and
do
something
about
it.
So,
even
just
within
Java
we
have
the
argument
that
which
is
just
pop
code
needs
to
support
a
variety
of
use
cases.
There's
a
complex
propagation,
similar
to
right.
E
F
E
Doesn't
local
in
I
took
locals?
You
see,
there's
an
extension
as
an
extension
point,
at
least
at
simmering,
for
something
we
create
something
on
the
sim
reps
find
out.
Can
I
comment
this
thing
so
I
can't
under
the
post,
P
debug
or
whatever
I
just
create
an
extension
point
in
open
j9
and
to
say
both
on
your
debug?
No,
he
can't
come
in
this
load.
E
C
E
Maybe
not
in
our
stills
I'm
a
I'm,
a
user
who
wants
to
be
the
reads
that
actually
happen
where
I
want
to
do.
I
want
to
be
able
to
see
the
events
between
reads
that
actually
are
done
by
my
program,
if
it
just
optimizes
to
reads
into
one
I:
don't
care
I
just
want
to
be
the
ones
that
have
actually
done.
That's
not
a
stim
ref
answer,
first,
a
although
it
could
be
configured,
though
you
could
have
a
simmer
as
the
computers,
its
building
x-ray,
guys.
F
E
F
C
F
F
C
E
A
E
In
Turkish,
so
if
you
do
to
make
this
thing
combinable
on
what
are
the
implications
on
the
rest
of
the
optimizer
which
queries
or
things
like?
Oh,
is
this
ping,
a
load
Aloha?
Those
places
need
to
be
switched
to
kind
of
acting
on
property,
rather
than
my
Allah
codes.
I
would
imagine
still
convey
all
relations
that
are
specifically
looking
for
a
rank
of
code.
Yes,
the
bowl
need
to
change.
B
B
C
E
C
E
C
E
A
C
E
C
C
C
F
E
D
I
need
specific
instruction.
Is
there
any
reason
why
this
would
have
to
be
evaluated
in
all
of
the
code
generators
as
opposed
to
some
point
before
turning
it
into
whoever
whatever
needs
to
be
done?
The
call
to
authority,
and
then
conventional
load
is
the
way
we
do
things
that
I
was
sweet,
that
write
barriers,
go
all
the
way
to
code
generator
and
everybody
more
or
less
plus
the
same
thing
we
repeated
five
times
there
any
need
to
kind
of
go
down
that
path.
D
C
B
D
D
B
E
E
E
E
F
E
I
guarantee
that
at
a
treetop
level,
I
know
it's
a
reed
barrier
and
I
know
the
thing
under
it
is
what
I
want,
in
this
case,
an
object
and
generates
an
appropriate
instruction
for
that
without
having
patter,
Magica
plus
Raja
I
have
to
consider
everything
understand
what
more
shapes
the
thing
can
appear
under
any
part
on
cable
is
very.
E
F
F
A
Really
just
pulling
on
something
that
you
with
said
earlier
about,
perhaps
in
the
very
near
future
needs
is
for
rights
as
well
from
a
symmetry
perspective.
I
think
we'd
be
nice
to
actually
all.
D
B
F
E
F
F
F
Story,
so
you
need
extra
tiles,
so
it
lists
so
I'm.
Just
saying
that's
a
a
deep
question
that
we're
probably
will
end
in
the
answer.
Yes,
we
do
want
to
distinguish
between
loads
and
stores.
Oh
yes,
we
do
want
to
just
reread
bars
and
write
bars.
Okay,
it's
valid
question
to
a
hospital
effort
to
be
far
off
numbers
down.
We
should
do
it
a
talk,
but
sure
hope
it
doesn't
end
where
I.
Otherwise.
This.
A
B
F
B
All
right,
a.
E
D
E
B
B
B
A
D
E
A
A
A
C
E
C
E
B
E
Because
I
don't
know
some
VM,
for
example,
Java
only
wanna
go
repairs
on
heap
objects,
I,
don't
know
if
I'm
inflating,
GCC
ml
right
every
read
as
a
matter
of
it
or
not,
but
it
along
a
field.
Watch
on
an
abstract
allocated
objects
shouldn't
like
a
puzzle.
Gc
implementations
didn't
sink
into
home
or
at
that
point
become
part
of
the
rebar
like.
E
D
E
A
E
A
In
next
steps,
so
I
guess
document
what
this
thing
does.
A
I
think
you
were
going
to
look
into
whether
or
not
some
of
the
constraints
could
be
relaxed.
I
mean
I,
guess
this
is.
This
is
going
to
get
into
the
semantics
of
what
this
does
right.
So
you
need
to
kind
of
activate
it
to
into
that,
and
I
need
to
come
up
with
sort
of
a
template
for
what
information
needs
to
be
provided
for,
proposing
a
new
pile.
C
A
All
right,
okay,
so
that
took
longer.
C
A
I
had
expected,
it
would
take
so
the
other
one
is
I'm,
really
hoping
we
can
get
through
it
in
20
minutes,
but
so
it
is
a
proposal
to
add
IAP
codes
for
actually
going
to
time
back
to
the
20
minutes
enemies.
So
it
doesn't.
We
can't
conclude
the
discussion.
Then
we
have
to
carry
it
on
some
other
time,
but
the
proposal
is
spring.
It
up
here.
D
A
I'm
going
to
speak
on
behalf
of
shabam
who's,
so
one
of
the
things
that
he's
working
on
at
the
moment
is
adding
support
for
F
mas
into
into
Omar.
This
isn't
necessarily
for
languages,
but
it's
not
for
languages
like
Java
it's
for,
but
there
are
uses
of
this
in
Java,
and
one
of
the
things
that
you
like
to
do
is
to
add
new
scalar
FMA
up
codes
to
Omar
and
the
denied
call
those
scalars
because
they're
already
our
vector
FM
a
pileup
codes
in
Omar
of
all
things,
which
is.
B
A
Which
I,
don't
think
are
actually
used
or
in
any
way
shape
or
form,
but
they're
part
of
those
part
of
our
API,
so
so
anyways.
The
the
proposals
that
these
eight
new
aisle
op
codes,
where
they
could
potentially
be
generated,
is
actually
during
actually
doing
simplification,
so
we
can
actually
recognize
you're
doing
some
kind
of
an
idiom
recognition
pattern
where
it
can
discover
these
sorts
of
operations
and
then
turn
them
into
an
OP
code
like
this.
A
It
can
also
do
further
simplification
of
these
op
codes
as
well,
and,
do
you
know
value
propagation
or
what
happens
folding
as
well?
The
semantics
of
these
probably
need
to
get
specified
a
little
bit
more
carefully.
I
think
you've
got
the
arithmetic
operation
here,
but
we
may
need
to
go
a
little
bit
deeper
in
terms
of
specifying
what
exactly
it
is
of
the
semantics
are
going
to
be.
A
We
had
a
discussion
about
a
month
ago
on
floating-point
semantics
in
omr
and
really
the
answer
that
came
out
of
that
discussion
was
that
we
need
to
have
a
means,
and
we
don't
have
this
yet
a
means
to
actually
delegate
some
kind
of
a
language
environment
to
ask
it.
What
the
proper
floating-point
semantics
are
in
that
environment.
A
We
that
we
need
to
colmar
shouldn't
be
bent
I'm
sure
when
try
to
say
gif
Omar
may
get
surprising
answers
that
a
particular
language
runtime
may
not
may
not
want
to
give.
So
why
did
I
say
that
well
to
define
the
actual
semantics
of
these
op
codes
if
we're
folding
and
then
that
kind
of
thing
I
think
that
we
need
to
be
able
to
provide
some
non
surprising
means
of
folding
these
kinds
of
operations,
so.
A
A
The
back
ends
would
then
go
and
map
these,
ideally
to
two
hardware:
instructions,
even
if
they're
not
necessarily
supported,
they
could
be
implemented
using
instructions
as
well
like
Tomica,
individual
instructions,
I'm,
not
sure
why
you
would
do
that,
but
that's
not
the
possibility
or
for
breaking
these
apart
and
I.
Would
imagine
these
going
to
be
creating
some
test
cases
as
well
to
demonstrate
demonstrate
that
my
name
is.
E
F
B
A
May
have
been
just
like
copied
from
the
vector
here's
a
little
wicked
do
the
sands
were
added
with
a
review
permanence
I.
Think,
though
it's
just
were
inherited
from
the
active
open
sourcing.
So,
okay,
great
suggestion,
I'm
just
looking
quickly
at
the
pull
request
that
was
open
for
these
and
the
properties
table
for
these
off
codes.
It
says
that
the
opcodes
have
three
children
of
unspecified
type.
B
B
D
New
page
or
motivation
for
this
origin,
so
we
thought
what
you
said
made
it
ago
about
simple
fire
finding
patterns
and
threatens
this
so
the
what
can
happen
after
that,
but
that's
good
what
could
happen
after
the
simplified?
That's
good!
What
can
happen
after
these
things
are
created.
That
can't
happen
if
they
were
left
alone,
everest
multiplication.
A
Well,
I
guess
the
the
there's
motivation
for
finding
them
in
a
common
place
right
as
opposed
to
having
beach
back
and
recognize
the
pattern
and
turn
them
into
an
actual
like
a
single
instruction.
He
actually
does
have.
Maybe
there's
even
another
pole
request.
That's
kind
of
a
work
in
progress
that
may
or
may
or
may
not
see
the
light
of
day
where
the
pattern
actually
is
recognized
in
the
back
end
and
the
comments
that
he
received
on
that
were
actually
is
recognized
earlier.
D
A
We
have,
if
you
look
at
the
implementation,
that
we
have
on
f
mas.
It's
got
a
very
mixed
history.
In
the
code
base,
there
seems
to
be
three
distinct
eras
in
which
f
mas
are
introduced,
and
there
is
some
very
early
code
that
was
introduced
to
try
to
recognize
an
extreme
corner
cases
for
Java
I,
think
that
was
done
on
the.
B
A
Sure
and
I
think
power
as
well
and
then
I
think
later
on.
There
was
another
mapping
of
FMA
instructions
to
or
FMA
op
codes.
I
think
this
were
the
double
to
the
vector
ones
came
in
under
control
of
an
option.
I
think
that's
only
done
on
Z
if
it's
float
math
option
which
doesn't
do
anything
at
the
moment,
but
we
still
code
guarded
with
it
and
then
there's
this
attempt
here.
So
you
want
to
clean
this
up
to
have
one
sort
of
consistent
way
of
doing
it.
A
There's
these
op
codes,
but
then
there's
another
sort
of
thing
that
he's
working
on
as
well
for
java
9,
where
there
actually
is
a
map
that
FM
a
method
that
was
introduced
to
the
math
class
math
class,
where
they
were
Java,
allows
you
to
use
to
do
24,
kaatham,
a
arithmetic
basically
and
he's
snapping
that
method
to
instructions
in
the
back
ends
of
supporters,
so
that
won't
use
this.
These
are
like
400,
Marvell,
non
Java
language
ism.
A
E
A
The
kokkonen
question
would
be
whether
or
not
there's
actually
support
there
for
it,
whether
or
not
potentially
you
actually
want
this.
We
actually
want
to
do
this
victory
coming.
You
have
an
option
at
this
and
what
I
don't
want
to
do
this,
and
whether
or
not
the
target
is
that
they'd
be
at
the
target
processor
that
your
donor
encode
for
actually
supports
these
East.
E
D
A
D
E
A
A
Okay,
so
I
guess
next
steps
and
this
one
is
to
again
similar
to
the
ones
that
the
previous
one
is
deprived,
provide
more
details
on
the
semantics
of
these
and
sort
of
the
testing
strategy,
for
this
also
got
that
extra
wrinkle
about
folding.
These
things
that
and
the
floating-point
semantics
that
we
haven't.
Really,
we
don't
have
a
solution
yet.
A
Okay,
all
right
thanks.
Everyone
we'll
have
another
architecture
meeting
in
in
two
weeks
and
I'll
get
the
agenda
up
there
so
that
people
can
add
proposed
ideas.
I
already
have
one
thing
in
mind:
already
somebody
lined
up
for
that
which
might
take
the
entire
time
but
feel
free
to
add.
When
you
see,
if
you
think
you
want
to
add
something
to
that
thanks,
everyone.