aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGBuiltin.cpp
AgeCommit message (Collapse)Author
2010-04-07@llvm.sqrt isn't really close enough to C's sqrt to justify emitting callsJohn McCall
to the intrinsic, even when math-errno is off. Fixes rdar://problem/7828230 by falling back on the library function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100613 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-04Reapply patch for adding support for address spaces and added a isVolatile ↵Mon P Wang
field to memcpy, memmove, and memset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100305 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-02Revert r100193 since it causes failures in objc in clangMon P Wang
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100200 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-02Reapply patch for adding support for address spaces and added a isVolatile ↵Mon P Wang
field to memcpy, memmove, and memset. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100193 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30Revert Mon Ping's 99930 due to broken llvm-gcc buildbots.Bob Wilson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99949 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-30Added support for address spaces and added a isVolatile field to memcpy, ↵Mon P Wang
memmove, and memset git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99930 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-25Remove support for nand atomic builtins. They are inconsistently implemented inDaniel Dunbar
gcc, and the common expectation seems to be that they are unused. If and when someone cares we can add them back with well documented demantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99522 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-20IRgen: Wrap atomic intrinsics with memory barriers, to ensure we honor the ↵Daniel Dunbar
semantics. - This should be conservatively correct, we eventually should have target hooks for platforms that are less strict. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99050 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06PR6515: Implement __builtin_signbit and friends.Eli Friedman
I'm reasonably sure my implementation is correct, but it would be nice if someone could double-check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97864 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-06Implement __builtin_dwarf_sp_column for i386 (Darwin and not), x86-64 (all),John McCall
and ARM. Implement __builtin_init_dwarf_reg_size_table for i386 (both) and x86-64 (all). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97859 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04Revert changes r97693, r97700, and r97718.John McCall
Our testing framework can't deal with disabled targets yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97719 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-04Implement __builtin_dwarf_sp_column().John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97700 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03add framework for ARM builtins, Patch by Edmund Grimley Evans!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97656 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Sketch out an implementation for __builtin_dwarf_cfa. I have no ideaJohn McCall
why the front-end is calculating the argument to llvm.eh.dwarf.cfa(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97653 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Implement __builtin_eh_return.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97643 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-03Add proper target hooks for __builtin_extract_return_address andJohn McCall
__builtin_frob_return_address. The implementations for both are still trivial in the default case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97638 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02Inspired by seeing "MIPS" go by in the commits, I've gone ahead andJohn McCall
implemented a (codegen) target hook for __builtin_extend_pointer. I'm also making it return a uint64_t instead of an unsigned word; this comports with typical usage (i.e. the one use I know of). I don't know if any of the existing targets requires this hook to be set (other than x86 and x86_64, which I know do not). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97547 91177308-0d34-0410-b5e6-96231b3b80d8
2010-03-02After much consultation aimed at figuring out what this builtin actuallyJohn McCall
does, document the results and then implement __builtin_extend_pointer for platforms where it's a no-op. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97540 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-09IRgen: Add CreateMemTemp, for creating an temporary memory object for a ↵Daniel Dunbar
particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing. - This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome! PR6240. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95648 91177308-0d34-0410-b5e6-96231b3b80d8
2010-02-05IRgen: Fix some CreateTempAlloca calls to use ConvertTypeForMem when that isDaniel Dunbar
conceptually correct. Review appreciated (Chris, Eli, Anders). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95401 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Add bzero builtin; this should help codegen quality for code using thisEli Friedman
function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94320 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-23Created __builtin___NSStringMakeConstantString() builtin, which generates ↵David Chisnall
constant Objective-C strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-16Add codgen for BI__builtin_llvm_memory_barrier.Tanya Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93611 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-27Promote arguments of frameaddr / returnaddr builtins to i32 type, when needed.Anton Korobeynikov
This is needed for the platforms, where bitwidth of "int" is not 32 bits (e.g. 16 on msp430). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92176 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Fill in the return value slot in CGExprAgg::VisitCallExpr. This takes us ↵Anders Carlsson
halfway towards fixing PR5824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92142 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-24Add a ReturnValueSlot class. Change the argument order in EmitCall to match ↵Anders Carlsson
the other overload better. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92136 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-23Update for the intrinsic changes in llvm: the object size intrinsicEric Christopher
only takes a boolean second argument now. Update tests accordingly. Currently the builtin still accepts the full range for compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91983 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-18Fix a few MSVC warnings.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91714 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-17Fix for PR5801: codegen memcpy, memmove, memset directly to LLVM intrinsics.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-16Add an addition check for undefined behavior for when we hit aMike Stump
__builtin_unreachable. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91499 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-14Revert mmx palignr to use an intrinsic, since mmx shuffle patterns are missing.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91269 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-14Support x86's PALIGNR instruction without the use of a palignr intrinsic.Nate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91264 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-07Remove obsolete fallback code for objectsize.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-12-01Update for llvm intrinsics change.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90208 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-29Explicitly use setVolatile instead of extra IRBuilder argument.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90095 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-16Pass a value for the isSigned parameter of CreateIntCast, rather thanDuncan Sands
passing the name (an exotic way of specifying that the result is signed!). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88909 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Enable the use of the new llvm objectsize intrinsic.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86607 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27__builtin_object_size refinements. Ensure we handle expressions withMike Stump
side-effects up front, as when we switch to the llvm intrinsic call for __builtin_object_size later, it will have two evaluations. We also finish off the intrinsic version of the code so we can just turn it on once llvm has the intrinsic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85324 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-26Prep for future __builtin_object_size refinements. The theory is thatMike Stump
someone will add an llvm intrinsic for us to use, so the optimizer can figure out the hard cases. WIP. For those that want to help, double check with Eric before starting. He has a bit of code this will plug into. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85175 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13Simplify pointer creation with the new Type::getInt*Ptr methods.Benjamin Kramer
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83964 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-21Implement __builtin_unreachable(), a GCC 4.5 extension.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82433 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-14Fix subtle bug in generating LLVM function declarations for builtin functions.Daniel Dunbar
The decl wasn't being passed down, which meant that function attributes were not being set correctly. This is particularly important for ARM, since it wants to override the calling convention. Instead we would emit the builtin with the wrong calling convention, and instcombine would come along and merrily shred all the calls to it. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09Remove tabs, and whitespace cleanups.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-01PR4836, part 2: CodeGen for __builtin_isnan.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80655 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Remove TargetInfo::getTargetPrefix().Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79907 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-13Update for LLVM API change.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78946 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-31Update for LLVM API change.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30Update for LLVM API changes.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-29Update for LLVM API change.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77514 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-27Update for LLVM API change.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77249 91177308-0d34-0410-b5e6-96231b3b80d8