Jonas Paulsson
2012-Oct-22 10:38 UTC
[LLVMdev] Immediate instructions / register allocator
Hi, I tried transforming code that loads an immediate into a virtual register, and then uses that virtual register in various ways, into code that uses immediate operands instead. To my surprise, this made the register allocator produce worse code in many cases. It seems that it is splitting live intervals and spilling more. In some cases the code was better. I wonder how this could be? Generally, using the immediates directly as constant operands should decrease regpressure, right? How could the RA-algorithm have been mislead by this? Thanks, Jonas -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121022/297bbd16/attachment.html>
On Mon, Oct 22, 2012 at 3:38 AM, Jonas Paulsson <jonas.paulsson at ericsson.com> wrote:> Hi, > > > > I tried transforming code that loads an immediate into a virtual register, > and then uses that virtual register in various ways, into code that uses > immediate operands instead.I suspect a concrete example might be helpful in demonstrating the specific issue.> To my surprise, this made the register allocator produce worse code in many > cases. It seems that it is splitting live intervals and spilling more. In > some cases the code was better. > > > > I wonder how this could be? Generally, using the immediates directly as > constant operands should decrease regpressure, right? How could the > RA-algorithm have been mislead by this? > > > > Thanks, > > > > Jonas > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Tasneem Brutch
2012-Oct-22 19:22 UTC
[LLVMdev] LLVM related position at Samsung R&D, San Jose, CA
Samsung R&D center at San Jose, CA, has a full time position open. The focus will be to work on a Translator/Instrumenter/Validator for WebCL kernels. The job description is attached for reference. People interested in the position can send their information to me. WebCL provides JavaScript bindings to OpenCL APIs, and the standard is currently being defined by Khronos, under the WebCK working group. There are currently three open source implementations of WebCL. Noted below are some WebCL related resources: The WebCL public draft can be found at: https://cvs.khronos.org/svn/repos/registry/trunk/public/webcl/spec/latest/in dex.html Samsung's prototype (BSD license) source code: http://code.google.com/p/webcl Public WebCL distribution list: public_webcl at khronos.org Regards, Tasneem Brutch -------------- next part -------------- A non-text attachment was scrubbed... Name: GPGPU_Sr_Engineer_updated_10_19.docx Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document Size: 17837 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121022/6986d29c/attachment.docx>
Reasonably Related Threads
- [LLVMdev] Immediate instructions / register allocator
- [LLVMdev] WebCL Kernel Validator RFQ
- using a variable in a subset of a dataframe
- Is subclass of ScheduleDAGMILive a pre-RA scheduler?
- [LLVMdev] SPIR provisional specifciation is now available in the Khronos website