Implement codegen support for lowering "library builtins" like __builtin_isinf
to their corresponding library routines (e.g. isinf). This allows us to handle all the stuff in macos math.h, and other stuff as it's added to *Builtins.def. llvm-svn: 41634
This commit is contained in:
@@ -127,7 +127,11 @@ llvm::Function *CodeGenModule::getBuiltinLibFunction(unsigned BuiltinID) {
|
||||
// and for the existing one to be turned into a constantexpr cast of the
|
||||
// builtin. In the case where the existing one is a static function, it
|
||||
// should just be renamed.
|
||||
assert(getModule().getFunction(Name) == 0 && "FIXME: Name collision");
|
||||
if (llvm::Function *Existing = getModule().getFunction(Name)) {
|
||||
if (Existing->getFunctionType() == Ty && Existing->hasExternalLinkage())
|
||||
return FunctionSlot = Existing;
|
||||
assert(Existing == 0 && "FIXME: Name collision");
|
||||
}
|
||||
|
||||
// FIXME: param attributes for sext/zext etc.
|
||||
return FunctionSlot = new llvm::Function(Ty, llvm::Function::ExternalLinkage,
|
||||
|
||||
Reference in New Issue
Block a user