Opened 9 years ago

Last modified 5 months ago

#1016 new task

Avoidance of unaligned loads is overly conservative

Reported by: igloo Owned by:
Priority: lowest Milestone: 7.12.1
Component: Compiler Version: 6.6
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Test Case: N/A
Blocked By: Blocking:
Related Tickets: Differential Revisions:

Description

On alpha, mips, mipsel and arm we do loads in a way that is safe even if they are unaligned (see cLoad in compiler/cmm/PprC.hs). We need this when, for example, we read things with indexInt16OffAddr# from Addr#s in alex-generated lexers, but most of the time we know that the address is aligned appropriately so loads are slower than they need be.

A better way to do this would be to make Load a MachOp parameterised by whether it's known to be aligned or not. Likewise, Store should be a CallishMachOp.

Change History (14)

comment:1 Changed 8 years ago by simonmar

  • Milestone changed from 6.8 branch to 6.10 branch

Let's revisit this in the context of the new back end.

comment:2 Changed 7 years ago by simonmar

  • Architecture changed from Unknown to Unknown/Multiple

comment:3 Changed 7 years ago by simonmar

  • Operating System changed from Unknown to Unknown/Multiple

comment:4 Changed 6 years ago by igloo

  • Milestone changed from 6.10 branch to 6.12 branch

comment:5 Changed 5 years ago by igloo

  • Milestone changed from 6.12 branch to 6.12.3

comment:6 Changed 5 years ago by igloo

  • Milestone changed from 6.12.3 to 6.14.1
  • Priority changed from normal to low

comment:7 Changed 4 years ago by igloo

  • Milestone changed from 7.0.1 to 7.0.2

comment:8 Changed 4 years ago by igloo

  • Milestone changed from 7.0.2 to 7.2.1

comment:9 Changed 4 years ago by igloo

  • Milestone changed from 7.2.1 to 7.4.1

comment:10 Changed 3 years ago by igloo

  • Milestone changed from 7.4.1 to 7.6.1
  • Priority changed from low to lowest

comment:11 Changed 3 years ago by igloo

  • Milestone changed from 7.6.1 to 7.6.2

comment:12 Changed 11 months ago by thoughtpolice

  • Milestone changed from 7.6.2 to 7.10.1

Moving to 7.10.1.

comment:13 Changed 5 months ago by thoughtpolice

  • Milestone changed from 7.10.1 to 7.12.1

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

comment:14 Changed 5 months ago by thoughtpolice

Moving to 7.12.1 milestone; if you feel this is an error and should be addressed sooner, please move it back to the 7.10.1 milestone.

Note: See TracTickets for help on using tickets.