[PATCH] D27454: Extract LaneBitmask into a separate type

Krzysztof Parzyszek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 6 05:59:00 PST 2016


kparzysz created this revision.
kparzysz added reviewers: MatzeB, qcolombet.
kparzysz added a subscriber: llvm-commits.
kparzysz set the repository for this revision to rL LLVM.
Herald added a reviewer: tstellarAMD.
Herald added subscribers: nhaehnle, arsenm.

The uses of lane masks are not consistent in terms of what type they use: some use LaneBitmask (which is defined in more than one place), others use plain unsigned. This patch defines LaneBitmask as a class with the underlying type of unsigned, and changes all uses of lane masks to use this class. The class is intended to avoid any overhead compared to using an integral type directly.  It specifically avoids implicit conversions from/to integral types to avoid potential errors when changing the underlying type. For example, a typical initialization of a "full" mask was "LaneMask = ~0u", which would result in a value of 0x00000000FFFFFFFF if the type was extended to uint64_t.


Repository:
  rL LLVM

https://reviews.llvm.org/D27454

Files:
  include/llvm/CodeGen/LiveIntervalAnalysis.h
  include/llvm/CodeGen/MachineBasicBlock.h
  include/llvm/CodeGen/RegisterPressure.h
  include/llvm/CodeGen/RegisterScavenging.h
  include/llvm/MC/MCRegisterInfo.h
  include/llvm/Support/LaneBitmask.h
  include/llvm/Target/TargetRegisterInfo.h
  lib/CodeGen/DetectDeadLanes.cpp
  lib/CodeGen/LiveInterval.cpp
  lib/CodeGen/LiveIntervalAnalysis.cpp
  lib/CodeGen/LivePhysRegs.cpp
  lib/CodeGen/LiveRangeCalc.cpp
  lib/CodeGen/LiveRangeCalc.h
  lib/CodeGen/LiveRangeEdit.cpp
  lib/CodeGen/LiveRegMatrix.cpp
  lib/CodeGen/MIRParser/MIParser.cpp
  lib/CodeGen/MIRPrinter.cpp
  lib/CodeGen/MachineBasicBlock.cpp
  lib/CodeGen/MachinePipeliner.cpp
  lib/CodeGen/MachineScheduler.cpp
  lib/CodeGen/MachineVerifier.cpp
  lib/CodeGen/PeepholeOptimizer.cpp
  lib/CodeGen/RegisterCoalescer.cpp
  lib/CodeGen/RegisterPressure.cpp
  lib/CodeGen/RegisterScavenging.cpp
  lib/CodeGen/RenameIndependentSubregs.cpp
  lib/CodeGen/ScheduleDAGInstrs.cpp
  lib/CodeGen/SplitKit.cpp
  lib/CodeGen/TargetRegisterInfo.cpp
  lib/CodeGen/VirtRegMap.cpp
  lib/Target/AMDGPU/SIRegisterInfo.cpp
  lib/Target/Hexagon/HexagonBlockRanges.cpp
  lib/Target/Hexagon/HexagonExpandCondsets.cpp
  lib/Target/Hexagon/RDFGraph.cpp
  lib/Target/Hexagon/RDFGraph.h
  lib/Target/Hexagon/RDFLiveness.cpp
  utils/TableGen/CodeGenRegisters.cpp
  utils/TableGen/CodeGenRegisters.h
  utils/TableGen/RegisterInfoEmitter.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27454.80409.patch
Type: text/x-patch
Size: 97816 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161206/8c658635/attachment.bin>


More information about the llvm-commits mailing list