[LLVMdev] llvm-gcc promotes i32 mul to i64 inside __muldi3

Sergey Yakoushkin sergey.yakoushkin at gmail.com
Wed Mar 17 15:55:32 PDT 2010


> This shouldn't be necessary, IMO.  If you were going to implement it,
> then the correct thing to do would be to have generic selection dag
> lowering of large multiplies, which renders the library mostly
> useless.
In fact, I would prefer to avoid custom lowering for operations on large types.
i64 will be rare in my case (embedded) and their performance is not an issue.
I need basic i64 support only for functional correctness.

> Any soft int stuff that lowering hasn't already implemented.
Taking into account known issues with soft int staff...
Why expansion of large MULs/etc into smaller ones is not default
behavior of ExpandNode (LegalizeDAG)?
(seems meaningful if i32 operation is Legal or Custom)
Are there any plans to add that?

Regards,
Sergey Y.



More information about the llvm-dev mailing list