Using GCC 3.4.6 20060404 (Red Hat 3.4.6-11) I've had this problem with the ALWAYS_INLINE directive in SelectionDAGISel.cpp: /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp: In function `bool CheckChildType(const unsigned char*, unsigned int&, llvm::SDValue, const llvm::TargetLowering&, unsigned int)': /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1880: sorry, unimplemented: inlining failed in call to 'bool CheckType(const unsigned char*, unsigned int&, llvm::SDValue, const llvm::TargetLowering&)': function body not available /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1894: sorry, unimplemented: called from here make[3]: *** [/arm/scratch/egrimley/llvm-svn-obj/lib/CodeGen/SelectionDAG/Debug/SelectionDAGISel.o] Error 1 I've not investigated any further as I'll probably switch to a newer GCC quite soon anyway. As a work-around I've changed 4 to 5 in these lines in include/llvm/Support/Compiler.h: #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) #define ALWAYS_INLINE __attribute__((always_inline)) Perhaps this change should be committed. -- IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.
On Mar 3, 2010, at 2:02 AM, Edmund Grimley Evans wrote:> Using GCC 3.4.6 20060404 (Red Hat 3.4.6-11) I've had this problem with > the ALWAYS_INLINE directive in SelectionDAGISel.cpp: > > /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp: In function `bool CheckChildType(const unsigned char*, unsigned int&, llvm::SDValue, const llvm::TargetLowering&, unsigned int)': > /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1880: sorry, unimplemented: inlining failed in call to 'bool CheckType(const unsigned char*, unsigned int&, llvm::SDValue, const llvm::TargetLowering&)': function body not available > /arm/scratch/egrimley/llvm.svn/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1894: sorry, unimplemented: called from here > make[3]: *** > [/arm/scratch/egrimley/llvm-svn-obj/lib/CodeGen/SelectionDAG/Debug/SelectionDAGISel.o] Error 1 > > I've not investigated any further as I'll probably switch to a newer GCC > quite soon anyway. As a work-around I've changed 4 to 5 in these lines > in include/llvm/Support/Compiler.h: > > #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) > #define ALWAYS_INLINE __attribute__((always_inline))Sounds good, thanks for the heads up. Committed in r97662 -Chris
Reasonably Related Threads
- Fix clang's 'flatten' function attribute: add depth to always_inline?
- [LLVMdev] [Bug 3756] __attribute__((always_inline)) and __builtin_constant_p
- [LLVMdev] [Bug 3756] __attribute__((always_inline)) and __builtin_constant_p
- [LLVMdev] [Bug 3756] __attribute__((always_inline)) and __builtin_constant_p
- [LLVMdev] [Bug 3756] __attribute__((always_inline)) and __builtin_constant_p