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!
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
