Devirtualize Constant::replaceUsesOfWithOnConstant.
authorPete Cooper <peter_cooper@apple.com>
Wed, 24 Jun 2015 18:55:24 +0000 (18:55 +0000)
committerPete Cooper <peter_cooper@apple.com>
Wed, 24 Jun 2015 18:55:24 +0000 (18:55 +0000)
commit234c5890e78633d36baa0477cb3ecfc8c02dfd67
tree3965b4c7f240c5d5bf9f5d4c13e4d502a3c64ea8
parenta0b5a74966533bd7df09fedd4e8726eaa118196d
Devirtualize Constant::replaceUsesOfWithOnConstant.

This is part of the work to devirtualize Value.

The old pattern was to call replaceUsesOfWithOnConstant which was overridden by
subclasses.  Those could then call replaceUsesOfWithOnConstantImpl on Constant
to handle deleting the current value.

To be consistent with other parts of the code, this has been changed so that we
call the method on Constant, and that dispatches to an Impl on subclasses.

As part of this, it made sense to rename the methods to be more descriptive.  The
new name is Constant::handleOperandChange, and it requires that all subclasses of
Constant implement handleOperandChangeImpl, even if they just throw an error if
they shouldn't be called.

Reviewed by Duncan Exon Smith.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240567 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/IR/Constant.h
include/llvm/IR/Constants.h
include/llvm/IR/GlobalValue.h
include/llvm/IR/GlobalVariable.h
lib/IR/Constants.cpp
lib/IR/Globals.cpp
lib/IR/Value.cpp