[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