summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Version.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-07-05 11:06:22 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-07-05 11:06:22 +0000
commit264854f9a06d748d01c55601a70a0d94c01090d0 (patch)
treeabefa664e5be2da61f91d9c9bd7234d2897e1fb7 /clang/lib/Basic/Version.cpp
parent71dacd09feee6d101306cbb4a058c1f81de17209 (diff)
downloadbcm5719-llvm-264854f9a06d748d01c55601a70a0d94c01090d0.tar.gz
bcm5719-llvm-264854f9a06d748d01c55601a70a0d94c01090d0.zip
Finish fixing the MachineOperand hashing, providing a nice modern
hash_value overload for MachineOperands. This addresses a FIXME sufficient for me to remove it, and cleans up the code nicely too. The important changes to the hashing logic: - TargetFlags are now included in all of the hashes. These were complete missed. - Register operands have their subregisters and whether they are a def included in the hash. - We now actually hash all of the operand types. Previously, many operand types were simply *dropped on the floor*. For example: - Floating point immediates - Large integer immediates (>64-bit) - External globals! - Register masks - Metadata operands - It removes the offset from the block-address hash; I'm a bit suspicious of this, but isIdenticalTo doesn't consider the offset for black addresses. Any patterns involving these entities could have triggered extreme slowdowns in MachineCSE or PHIElimination. Let me know if there are PRs you think might be closed now... I'm looking myself, but I may miss them. llvm-svn: 159743
Diffstat (limited to 'clang/lib/Basic/Version.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud