patch from Frits van Bommel:
authorChris Lattner <sabre@nondot.org>
Thu, 18 Nov 2010 02:15:42 +0000 (02:15 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 18 Nov 2010 02:15:42 +0000 (02:15 +0000)
commit85a0a06b18be145feb0c10cbdf4d521c1a8835bf
tree4dce3dae50d2b8af6874a4e537c24e7deefd83af
parent5c0556341e29246e697c73844a5f9b1e14474715
patch from Frits van Bommel:

The attached patch fixes IRBuilder and the NoFolder class so that when
NoFolder is used the instructions it generates are treated just like
the ones IRBuilder creates directly (insert into block, assign them a
name and debug info, as applicable).
It does this by
1) having NoFolder return Instruction*s instead of Value*s,
2) having IRBuilder call Insert(Value, Name) on values obtained from
the folder like it does on instructions it creates directly, and
3) adding an Insert(Constant*, const Twine& = "") overload which just
returns the constant so that the other folders shouldn't have any
extra overhead as long as inlining is enabled.

While I was there, I also added some missing (CreateFNeg and various
Create*Cast) methods to NoFolder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119614 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Support/IRBuilder.h
include/llvm/Support/NoFolder.h