[PATCH vkd3d] vkd3d-shader/hlsl: Handle constant value operations on a different file.
Francisco Casas
fcasas at codeweavers.com
Tue Jan 4 10:59:36 CST 2022
January 4, 2022 11:36 AM, "Giovanni Mascellani" <gmascellani at codeweavers.com> wrote:
> Hi,
>
> On 03/01/22 15:57, Francisco Casas wrote:
>
>> On constant folding, first switch on the op type, handling each
>> operation using a function defined on hlsl_constant_ops.c.
>
> Creating a new file makes sense to me, but while you're doing it it also makes sense to copy there
> the whole implementation of fold_constants(), doesn't it? It logically related to
> hlsl_constant_ops.c, and it also spares you adding a lot of functions to the header file (also, if
> you do that you probably have only one function to add to the header, fold_constants() itself, and
> you can put it in hlsl.h instead of creating a new file).
>
That sounds like a very good idea to me!
> While I don't have any specific objection against it, is there a particular reason for inverting
> the switch on the type and on the operation?
>
Zebediah mentioned that in the future we may want to add operations that aren't typed.
Also, I think that splitting the problem op-wise allows for a better organization since there
are fairly more ops than types.
>> Each of these operations switches on the data type, if needed.
>
> As I just said on the other thread (where I replied before noticing this one), watch out for
> undefined behavior that some operations entail.
>
Noted. The only problem with (+), (*), and (-), I can think of is signed integer overflow.
I am not sure yet if implicit castings in C may result in undefined behaviors, I must check.
More information about the wine-devel
mailing list