bug in CSEMap?

I am having some problems with the generated code having wrong
constants in the constant pull. Adding a dump of "C" and "E" in
SelectionDAG::getConstantPool I get

C:

I think that the problem is in SelectionDAG::getConstantPool itself.
Only Alignment and Offset are used in the ID. This causes false
aliases.

X86TargetLowering::LowerFABS should also be affected. All of its calls
to getConstantPool have the same alignment and offset.

Best Regards,
Rafael

I think that the problem is in SelectionDAG::getConstantPool itself.
Only Alignment and Offset are used in the ID. This causes false
aliases.

Doh. Sorry about that, I just checked in a fix. Please verify that this corrects the problem.

X86TargetLowering::LowerFABS should also be affected. All of its calls
to getConstantPool have the same alignment and offset.

I think that this should be okay, but I'll let Evan comment on it.

-Chris

Doh. Sorry about that, I just checked in a fix. Please verify that this
corrects the problem.

Fixed.

Thanks,
Rafael