Added a feature to the Sparc back-end that replaces the integer multiply and
divide instructions with calls to .mul/.sdiv/.udiv. This is a step towards
having full v7 support.
Details
Diff Detail
- Build Status
Buildable 8356 Build 8356: arc lint + arc unit
Event Timeline
I assume the .mul/.sdiv/.udiv routines must be provided by linking to libgcc or glibc?
Looks good to me but perhaps wait for @jyknight to confirm also.
Yes, libgcc provides ".umul", ".udiv", ".div", ".urem", and ".rem" functions.
lib/Target/Sparc/SparcSubtarget.h | ||
---|---|---|
35 | I'd suggest "UseSoftMulDiv", instead, since it affects both. Here and everywhere. |
Please, that would be great. I've updated it with the name change, so it should be good to go.
MSan detects use of unitialized values, please fix: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-bootstrap/builds/1846
Hey everyone! Just wanted to share my thoughts on the recent addition to the Sparc backend. The software multiplication/division feature seems like a great step forward, especially in terms of achieving full v7 support. Kudos to the developers for implementing this addition!
Software-based multiplication and division can offer flexibility and potentially improve performance in certain scenarios. By replacing the integer multiply and divide instructions with calls to .mul/.sdiv/.udiv, it allows for more efficient code generation and opens up possibilities for optimizations.
As a software developer, I appreciate updates like this that enhance the capabilities of a platform. It's great to see continuous improvements being made to Sparc. I'm curious to see how this feature performs in practice and if it leads to any noticeable improvements in the overall performance of Sparc-based applications.
I'd suggest "UseSoftMulDiv", instead, since it affects both. Here and everywhere.