►
From YouTube: OMR Architecture Meeting 20210429
Description
Agenda:
* Revisit: Clean up centralized opcode enums (#5703) [ @fjeremic ]
A
Welcome
everyone
to
the
april
29th
omar
architecture
meeting
today
we
have
one
topic
to
discuss
so
philip's,
going
to
revisit
some
work
that
we
had
talked
about
late
last
year
on
centralizing
the
upcode
enum
of
the
opcode
enums,
so
philip
feel
free
to
take
it
away.
B
Zero,
can
you
hear
me.
A
B
Yes,
yes,
cool,
okay,
so
I
guess
late
last
year
we
had
a
slack
conversation
to,
I
guess:
propose
cleaning
up
our
centralized
upcoding,
which
was
some
work
that
was
done
late
in
the
fall.
B
I
guess,
pre-processor
tricks
that
we're
doing
at
the
moment
I
have,
and
another
part
of
reason
was
that
our
evaluator
names
are
kind
of
all
over
the
place
on
different
cogents.
I
think
I
gave
an
example
last
time
of
the
long
unsigned
negative
evaluator
having
you
know,
different
name
on
every
single
platform.
B
So
if
you
want
to
see
the
implementation
of
that
evaluator
across
platforms,
you
kind
of
have
to
dig
through
all
the
all
the
layers
to
find
where
this
is
actually
implemented.
B
This
does
introduce
quite
a
bit
of
I
guess
boilerplate
code,
which
might
be
unnecessary
and
it
would
require
inlining
some
of
the
implementations
into
these
stub
functions
and
at
a
later
point
there
was
an
alternative
solution
discussed
which
we
can
use
kind
of
these
up
code
and
macros
to
more
or
less
achieve
the
same
effect
science
without
the
the
naming
benefit
for
downstream
projects.
B
So
what
I
did
was
er,
I
guess
late
last
year
I
prototyped
how
this
would
look
on
x86
just
to
get
an
example,
and
one
of
the
concerns
we
had
at
the
time
was
the
footprint
growth
which
I
measured
to
be
about
0.7
using
openg9
as
an
example
and
that's
for
every
single
evaluator.
I
think
since
then,
we've
eliminated
some
up
codes
and
there's
more
coming
with
the
dfb
deprecation
as
well.
B
So
I
expect
that
number
to
probably
be
even
like
0.6
or
0.5,
so
I
don't
think
there's
too
much
concern
on
the
footprint
side
of
things.
B
B
I
guess
not
sure
what
to
call
this.
It's
still
kind
of
a
hack
to
let
our
downstream
projects
override
things.
So
I
I
have
the
two
pr's
open
just
to
give
you
a
sense
of
what
this
looks
like
it's
a
really
mechanical
change,
but
it
does
introduce
quite
a
bit
of
code
so
today
or
for
x86.
I
just
made
the
change
here.
So
what
we
have
today
is
we
have
all
of
these
preprocessor
defines,
for
example,
an
acounts
evaluator.
B
So
it's
going
to
be
underscore
and
then
the
about
the
op
code,
name
and
then
followed
by
evaluator
and,
of
course,
that'll
get
replaced
with
one
of
these,
and
this
will
get
replaced
with
the
actual
evaluator
sql
function
at
compile
time.
B
The
unfortunate
side
effect
of
this
is
that
you
can't
actually
override
evaluators
in
downstream
projects,
because
you'll
have
an
aiming
clash
because,
for
example,
if
I
want
to
override
the
white
swap
evaluator
well,
it's
already
defined
in
omr,
and
it's
going
to
go
here,
no
matter
what.
So.
I
can't
actually
override
that
in
a
nice
way
at
the
moment.
So
what
I
guess
the
current
proposal
that
we
have
introduces
quite
a
lot
of
boilerplate.
B
So,
rather
than
doing
those
underscore
methods,
we
just
implement
all
the
functions
evaluators
with
just
the
op
code
and
then
evaluator
in
the
name
and
then
literally
all
of
these
just
are
just
stubs,
calling
whatever
was
on
the
right
hand,
side
of
those
processor
defines
so,
for
example,
the
lmax
evaluator
today,
and
the
processor
stub
is
calling
the
min
max
evaluator
function
and
in
the
new
world
we
just
have
a
sub
function,
calling
the
same
thing.
So
it's
just
a
knock
change
effectively.
B
Of
course,
over
time,
we'd
probably
want
to
merge
things
like
this
into
the
actual
lmax
evaluator.
If
that
makes
sense,
and
most
of
the
time
it
actually
does,
unless
we
share
a
lot
of
the
code
for
each
and
every
evaluator
and
on
the
openg9
side,
how
this
looks
is
we
actually
get
rid
of
the
entire
tree
evaluator
table?
So
these
are
no
longer
needed
anywhere
in
openg9
and
for
the
upcodes
that
are
defined
in
openg9.
B
We
simply
just
define
the
functions
in
the
same
nomenclature,
so
I
guess
all
these
are
going
to
go
away
soon
for,
but
for
the
df
const
evaluator,
you
just
need
to
define
the
function
and
the
implementation
of
that.
Whatever
that
may
be
on
your
particular
platform,
that's
it.
B
So
I
guess
the
revisit
portion
of
these
is
just
to
get
people
looking
at
the
two
pr's
and
we
can
make
a
call
on
whether
we
actually
want
to
proceed
with
this,
or
should
we
just
re-implement
our
hash
defines
to
be
able
to
override
these
evaluators
at
compile
time,
maybe
as
a
stepping
stone,
maybe
sometime
in
the
future.
We
can
take
a
look
at
doing
the
whole
thing.
C
Were
there
any
name,
conflicts
that
came
from
sort
of
the
evaluator
already
being
named
according
to
this
pattern,
and
then
it
required
not
adding
the.
B
B
But
in
in
a
lot
of
the
cases
where
we
do
have
like
a
one-on-one
one-to-one
mapping,
of
course
I
didn't
do
it
here,
but
if
we
had
a
one-on-one
mapping
tools,
I
don't
know.
I
can't
really
find
an
example.
B
A
Sense
yeah,
I
mean,
I
guess
it's
something
we
could.
We
could
all
look
through
the
what
you
have
there
and
perhaps
on
the
next
call
we
can,
if
we
haven't
done
it
sooner,
we
can
make
a
call
on
this.
One.
B
B
C
It
could
be
a
lot
less
code
introduced.
If
the
you
know
any
of
that
single
use,
inlining
is
done
or
you
know,
I
guess
you
could
think
of
it.
As
for
a
function.
That's
only
used
for
one
op
code
just
renaming
the
function
instead
of
introducing
a
wrapper
that
might
already
drastically
reduce
the
amount
of
additional
code.
B
Yep
yeah,
the
reason
I
don't.
I
don't
think
I'd
probably
want
to
do
this
in
these
pr's
is
it's
quite
mechanical
and
could
be
error.
C
I
I
do
like
the
the
the
naming
property
I'll
say
that,
like
I
like
the
the
overall
thing
here
where,
if
you
want
to,
if
you
want
to
specialize
something
it's
there,
because
you
can
call
the
the
omr
implementation,
it
has
a
path
to
it
right
and
then
you
know
if
you
want
to
know
well,
I
don't
know
about
the
the
long
unsigned
negate.
C
I
guess
that's
the
same
as
signed
negate,
but
you
know
you
want
to
know
what
the
evaluator
is
for
something
you
just
go
that
thing
evaluator
right.
Yes,
that's
great!.
C
Been
a
lot
of
times,
I've
had
to
sort
of
chase
down.
A
Yeah,
that's
a
nice
feature
for
sure
and,
as
philip
mentioned,
there
has
been
some
work
happening
lately
to
reduce
the
size
of
the
ilop
code
table
in
the
first
place.
So
at
least
driven
from
the
open,
j9
side
phillips
been
removing
a
lot
of
the
the
the
the
decimal
code
there.
It's
not
going
to
impact
omar
too
much,
but
there
will
be
some
things
spilling
over
and
then
all
the
up
codes
that
I
talked
about
two
weeks
ago.
A
We
got
rid
of
those
already,
so
the
omr
upcode
table
is
down
to
653.
Something
like
that.
Right
now,.
A
But
yeah
I
like
the
consistency
idea
for
sure,
so,
let's
all
take
a
to
do
to
to
look
through
the
code
that
he's
put
together
and
make
a
decision
on
it
within
a
couple
of
weeks.
B
A
So
I
guess,
if
there's
nothing
else,
we
can
call
it
now
and
I've
got
the
agenda
created
for
the
may
13th
meeting.
So
if
you
have
a
topic
to
add
there,
please
add
it
to
the
agenda
and
we'll
move
forward.