diff options
author | Hal Finkel <hfinkel@anl.gov> | 2015-08-31 23:55:19 +0000 |
---|---|---|
committer | Hal Finkel <hfinkel@anl.gov> | 2015-08-31 23:55:19 +0000 |
commit | 65e1e4dbe0f1fff23eceeb0fcadd93e8f0a302aa (patch) | |
tree | 2f5a5104242324476a32cae071e49f43c41c89c7 /clang/lib/CodeGen | |
parent | f4967754a517e0a37621c80c9e695041cf9bf5b3 (diff) | |
download | bcm5719-llvm-65e1e4dbe0f1fff23eceeb0fcadd93e8f0a302aa.tar.gz bcm5719-llvm-65e1e4dbe0f1fff23eceeb0fcadd93e8f0a302aa.zip |
[PowerPC] Support __builtin_ppc_get_timebase
GCC 4.8+ has a PowerPC-specific intrinsic, __builtin_ppc_get_timebase, to do
what Clang's __builtin_readcyclecounter does. For compatibility with code that
uses GCC's spelling (including glibc), support it as well.
Partially fixes PR23681.
llvm-svn: 246510
Diffstat (limited to 'clang/lib/CodeGen')
-rw-r--r-- | clang/lib/CodeGen/CGBuiltin.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 6966b03ef3b..a04a1c12560 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -6414,6 +6414,11 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID, switch (BuiltinID) { default: return nullptr; + // __builtin_ppc_get_timebase is GCC 4.8+'s PowerPC-specific name for what we + // call __builtin_readcyclecounter. + case PPC::BI__builtin_ppc_get_timebase: + return Builder.CreateCall(CGM.getIntrinsic(Intrinsic::readcyclecounter)); + // vec_ld, vec_lvsl, vec_lvsr case PPC::BI__builtin_altivec_lvx: case PPC::BI__builtin_altivec_lvxl: |