On 4/19/07, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
JET replies on SSE2 instructions and this patch does not fix it. The patch
fixes only OPT.
"client" mode contains JET as a first JIT, but I added code to JET to check
if SSE2 is available and refuse compilation if not.
The second JIT in 'client' mode is OPT and after JET is refused to compile a
method, OPT compiles it.

I have another idea to check in JET if method contains double ops and
compile it if it does not. It will improve startup time and JVMTI support
significantly before JET is able to support 'doubles' on i586, because of
only small number of methods use doubles.

Good idea. This above on 586/P3 can be phase I of P3 support. The rest
is somewhat lower priority imho. Since the minimum it is being tested
on is P3, why not call it P3?

But I do not want putting all the changes into the same patch and propose
moving by small steps.
My proposal is committing this patch (after p3 is renamed to 'i586') and
open new JIRAs for every problem we have like
1) support doubles in JET for non-SSE2 platforms
2) various bugs on i586 platforms
3) making JET compile methods without doubles on i586 until item1) is ready.


What do you think on this?

On 4/20/07, Nathan Beyer <[EMAIL PROTECTED]> wrote:
>
> I'm trying it again, but I believe so, yes. Should one of the tests
> fails? Didn't you mention that JET wouldn't work? Is JET used in the
> "client" test?
>
> -Nathan
>
> On 4/19/07, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
> > And one more question: did these JVMTI tests passed with original patch?
> >
> > On 4/20/07, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
> > >
> > > Do you have the same JVMTI errors if you use -Xem:opt option?
> > > I'll try to reproduce your errors by forcing isSSE2Supported() return
> > > 'false' for every platform.
> > >
> > > On 4/20/07, Nathan Beyer <[EMAIL PROTECTED]> wrote:
> > > >
> > > > I uploaded a test log that shows some errors from JVMTI tests (I
> think
> > > > that's what was blowing up). Those seem to be first if you just run
> > > > "./build.sh test".
> > > >
> > > > I'm running "./build.sh smoke.test " and it executing right now, but
> > > > it's very slow.
> > > >
> > > > -Nathan
> > > >
> > > > On 4/19/07, Mikhail Fursov <[EMAIL PROTECTED]> wrote:
> > > > > Check new patch, please.
> > > > >
> > > > > On 4/19/07, Nathan Beyer <[EMAIL PROTECTED]> wrote:
> > > > > >
> > > > > > On 4/18/07, Mikhail Fursov <[EMAIL PROTECTED] > wrote:
> > > > > > > It's a good idea.
> > > > > > > I'll do both: add k5 pass to all Jitrino.OPT configs and make
> EM
> > > > use
> > > > > > > opt.emconf by default.
> > > > > > > So there will no additional configuration nor command line
> > > > options!
> > > > > >
> > > > > > I'm not sure what all this means, but if the last line means
> DRLVM
> > > > > > will run and pass its tests on a P3 straight out of the build,
> then
> > > > > > that's a +1 from me.
> > > > > >
> > > > > > Are you going to post a new patch to this bug? Just so I know
> what
> > > > to
> > > > > > watch for.
> > > > > >
> > > > > > -Nathan
> > > > > >
> > > > > > >
> > > > > > > On 4/19/07, Gregory Shimansky < [EMAIL PROTECTED]> wrote:
> > > > > > > >
> > > > > > > > Rana Dasgupta wrote:
> > > > > > > > > Could be a protocol between the EM and the jits, maybe?
> > > > > > > >
> > > > > > > > I also think that EM is the right place to chose the correct
> > > > emconf
> > > > > > file
> > > > > > > > at runtime based on the CPU detection.
> > > > > > > >
> > > > > > > > > On 4/18/07, Xiao-Feng Li <[EMAIL PROTECTED]> wrote:
> > > > > > > > >> On 4/18/07, Pavel Ozhdikhin < [EMAIL PROTECTED]>
> > > > wrote:
> > > > > > > > >> > On 4/18/07, Alexey Varlamov <
> [EMAIL PROTECTED]>
> > > > wrote:
> > > > > > > > >> > >
> > > > > > > > >> > > 2007/4/18, Mikhail Fursov <[EMAIL PROTECTED]>:
> > > > > > > > >> > > > Nathan,
> > > > > > > > >> > > > I checked the patch and it looks OK except a one
> issue.
> > > >
> > > > > > > > >> > > >
> > > > > > > > >> > > > I do not really like that we have new p5.emconf in
> > > > codebase
> > > > > > and
> > > > > > > > >> propose
> > > > > > > > >> > > the
> > > > > > > > >> > > > following improvement:
> > > > > > > > >> > > > 1) add p5 pass to all Jitrino.OPT codegen aliases
> in
> > > > every
> > > > > > > > >> emconf we
> > > > > > > > >> > > have.
> > > > > > > > >> > > > (I can update the patch if agreed)
> > > > > > > > >> > > I suppose you meant all ia32 configs :). This is
> > > > neccesary step
> > > > > > to
> > > > > > > > >> > > CPUID autodetection, so it a must actually.
> > > > > > > > >> > >
> > > > > > > > >> > > >
> > > > > > > > >> > > > 2) a. After the commit: Make it turned off by
> default
> > > > and use
> > > > > > > > >> additional
> > > > > > > > >> > > > cmd-line -XX:jit.arg.codegen.p5=on when run on PC
> > > > without
> > > > > > SSE2
> > > > > > > > >> > > >    b. Start discussion: Use CPUID to detect if SSE2
> is
> > > > > > available
> > > > > > > > >> and
> > > > > > > > >> > > make
> > > > > > > > >> > > > JIT turn this pass on automatically if needed.
> > > > > > > > >> > > >
> > > > > > > > >> > > > We can implement CPUID check for SSE2 in JIT only
> (a
> > > > couple
> > > > > > of
> > > > > > > > >> lines of
> > > > > > > > >> > > > assembly for Linux and Windows)
> > > > > > > > >> > > > The question is: would it be better if VM provides
> such
> > > > > > service
> > > > > > > > for
> > > > > > > > >> > > every
> > > > > > > > >> > > > client? E.g. cpuid_is_sse2_supported()-like
> methods.
> > > > > > > > >> > > I'm in serious doubt that it is needed. Too
> IA-centric,
> > > > it
> > > > > > would
> > > > > > > > have
> > > > > > > > >> > > little sense in general case. So doing it right in
> Jit is
> > > > the
> > > > > > right
> > > > > > > > >> > > thing IMO.
> > > > > > > > >> >
> > > > > > > > >> >
> > > > > > > > >> >
> > > > > > > > >> > Why do you think this is not needed? We might have
> several
> > > > JITs
> > > > > > or
> > > > > > > > >> > interpreter that can use and extended set of
> instructions.
> > > > It
> > > > > > would
> > > > > > > > >> be good
> > > > > > > > >> > to keep these checks in one place in VM.
> > > > > > > > >>
> > > > > > > > >> This is architecture specific property, hence Alexey may
> > > > think it
> > > > > > > > >> belongs to code generator (here JIT), since otherwise an
> > > > > > interpreter
> > > > > > > > >> in C may not need it. I think Alexey's point is valid. To
> > > > deal with
> > > > > > > > >> multiple JITs, probably we can put it into some
> JIT-common
> > > > files.
> > > > > > In
> > > > > > > > >> other words, although multiple JITs may query it, it is
> not
> > > > > > > > >> necessarily VM's duty to respond. (Or if we view the
> > > > JIT-common
> > > > > > > > >> support as part of VM, then yes, it can be provided by
> VM.)
> > > > > > > > >>
> > > > > > > > >> Thanks,
> > > > > > > > >> xiaofeng
> > > > > > > > >>
> > > > > > > > >> > Thanks,
> > > > > > > > >> > Pavel
> > > > > > > > >> >
> > > > > > > > >> > >
> > > > > > > > >> > > >
> > > > > > > > >> > > > On 4/18/07, Nathan Beyer < [EMAIL PROTECTED]>
> wrote:
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > Would anyone else like to review this patch? It's
> > > > somewhat
> > > > > > > > >> > > > > significant. I've tested it on a P4/WinXP and
> DRLVM
> > > > works
> > > > > > > > >> without any
> > > > > > > > >> > > > > noticeable regressions. I've done some initial
> tests
> > > > on a
> > > > > > Quad
> > > > > > > > >> > > > > P3/Ubuntu and I can now run a simple Hello World
> with
> > > > the
> > > > > > > > >> default JIT,
> > > > > > > > >> > > > > which is a huge step.
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > If no one has any issues, I'm going to commit
> this
> > > > patch.
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > -Nathan
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > ---------- Forwarded message ----------
> > > > > > > > >> > > > > From: Nathan Beyer (JIRA) <[EMAIL PROTECTED]>
> > > > > > > > >> > > > > Date: Apr 18, 2007 12:49 AM
> > > > > > > > >> > > > > Subject: [jira] Commented: (HARMONY-3246)
> > > > [drlvm][jit][opt]
> > > > > > > > >> Jitted
> > > > > > > > >> > > > > code can not be executed on non-SSE2 platforms
> > > > > > > > >> > > > > To: [EMAIL PROTECTED]
> > > > > > > > >> > > > >
> > > > > > > > >> > > > >
> > > > > > > > >> > > > >
> > > > > > > > >> > > > >     [
> > > > > > > > >> > > > >
> > > > > > > > >> > >
> > > > > > > > >>
> > > > > > > >
> > > > > >
> 
https://issues.apache.org/jira/browse/HARMONY-3246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489614
> > > >
> > > > > > > > >>
> > > > > > > > >> > > > > ]
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > Nathan Beyer commented on HARMONY-3246:
> > > > > > > > >> > > > > ---------------------------------------
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > I've test this on a Linux P3 and it seems to
> work.
> > > > I'm now
> > > > > > > > >> able to run
> > > > > > > > >> > > > > a simple hello world. Additionally, everything
> seems
> > > > to
> > > > > > work
> > > > > > > > >> as it did
> > > > > > > > >> > > > > on a P4/WinXP.
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > Let's see if we can get a few more people to
> review
> > > > the
> > > > > > code.
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > > [drlvm][jit][opt] Jitted code can not be
> executed
> > > > on
> > > > > > non-SSE2
> > > > > > > > >> > > platforms
> > > > > > > > >> > > > > >
> > > > > > > > >> > >
> > > > > > > > >>
> > > > > >
> > > >
> -----------------------------------------------------------------------
> > > > > > > > >> > > > > >
> > > > > > > > >> > > > > >                 Key: HARMONY-3246
> > > > > > > > >> > > > > >                 URL:
> > > > > > > > >> > > https://issues.apache.org/jira/browse/HARMONY-3246
> > > > > > > > >> > > > > >             Project: Harmony
> > > > > > > > >> > > > > >          Issue Type: Improvement
> > > > > > > > >> > > > > >          Components: DRLVM
> > > > > > > > >> > > > > >            Reporter: Nikolay Sidelnikov
> > > > > > > > >> > > > > >         Assigned To: Nathan Beyer
> > > > > > > > >> > > > > >         Attachments: p5_fixed_commented.patch
> > > > > > > > >> > > > > >
> > > > > > > > >> > > > > >
> > > > > > > > >> > > > > > Jitrino generates code with SSE and SSE2
> > > > instructions
> > > > > > which
> > > > > > > > >> can not
> > > > > > > > >> > > be
> > > > > > > > >> > > > > executed on processors older than Pentium 4.
> > > > > > > > >> > > > >
> > > > > > > > >> > > > > --
> > > > > > > > >> > > > > This message is automatically generated by JIRA.
> > > > > > > > >> > > > > -
> > > > > > > > >> > > > > You can reply to this email to add a comment to
> the
> > > > issue
> > > > > > > > online.
> > > > > > > > >> > > > >
> > > > > > > > >> > > >
> > > > > > > > >> > > >
> > > > > > > > >> > > >
> > > > > > > > >> > > > --
> > > > > > > > >> > > > Mikhail Fursov
> > > > > > > > >> > > >
> > > > > > > > >> > >
> > > > > > > > >> >
> > > > > > > > >>
> > > > > > > > >>
> > > > > > > > >> --
> > > > > > > > >> http://xiao-feng.blogspot.com
> > > > > > > > >>
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > --
> > > > > > > > Gregory
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > Mikhail Fursov
> > > > > > >
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Mikhail Fursov
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Mikhail Fursov
> >
> >
> >
> >
> > --
> > Mikhail Fursov
> >
>



--
Mikhail Fursov

Reply via email to