summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* IRGen support for functions returning objc objectFariborz Jahanian2010-08-114-10/+21
| | | | | | types. Fixes PR7865. llvm-svn: 110832
* fix silly typoJim Grosbach2010-08-111-2/+2
| | | | llvm-svn: 110831
* Add a target triple, as the runtime library invocation varies a bit byJim Grosbach2010-08-111-3/+3
| | | | | | | | | platform. It's apparently "bl __muldf3" on linux, for example. Since that's not what we're checking here, it's more robust to just force a triple. We just wwant to check that the inline FP instructions are only generated on cpus that have them." llvm-svn: 110830
* Fix test and re-enable it.Evan Cheng2010-08-111-4/+4
| | | | llvm-svn: 110829
* now works with -fno-exceptions and -fno-rttiHoward Hinnant2010-08-1120-10/+394
| | | | llvm-svn: 110828
* #ifdef around Solaris/Linux/Darwin-specific error codes and replace them ↵David Chisnall2010-08-111-0/+20
| | | | | | with their BSD equivalents if they are not available. llvm-svn: 110827
* Fix a FIXME. The SlotIndex::Slot enum should be private.Jakob Stoklund Olesen2010-08-112-16/+30
| | | | llvm-svn: 110826
* Temporarily disable some failing tests, until they can beDan Gohman2010-08-111-2/+2
| | | | | | properly investigated. llvm-svn: 110825
* Include sys/endian.h on FreeBSD and use that to detect the byte order.David Chisnall2010-08-111-0/+11
| | | | llvm-svn: 110824
* Add a (currently unused) "options" parameter toDouglas Gregor2010-08-115-5/+54
| | | | | | | | | | clang_reparseTranslationUnit(), along with a function to retrieve the default recommended reparsing options for a translation unit. Also, add the CXTranslationUnit_CacheCompletionResults flag, which is also currently unused. llvm-svn: 110811
* cortex m4 has floating point support, but only single precision.Jim Grosbach2010-08-115-2/+35
| | | | llvm-svn: 110810
* Remove wpa 'example', it isn't being maintained.Daniel Dunbar2010-08-115-199/+1
| | | | llvm-svn: 110809
* Temporarily disable some failing tests, until they can beDan Gohman2010-08-111-2/+2
| | | | | | properly investigated. llvm-svn: 110808
* Random temporary string cleanup.Benjamin Kramer2010-08-117-12/+10
| | | | llvm-svn: 110807
* If name lookup finds different type declarations in different scopesDouglas Gregor2010-08-113-21/+55
| | | | | | | | that actually refer to the same underlying type, it is not an ambiguity; add uniquing support based on the canonical type of type declarations. Fixes <rdar://problem/8296180>. llvm-svn: 110806
* Modified the definition of std::foward to address National Body Comment US 90Howard Hinnant2010-08-111-8/+38
| | | | llvm-svn: 110805
* Fix a thinko in the creation of temporary files for the precompiled preambleDouglas Gregor2010-08-111-1/+2
| | | | llvm-svn: 110804
* Speculatively revert r110610 " Make ObjCInterfaceDecl redeclarable,Douglas Gregor2010-08-1120-274/+148
| | | | | | | | and create separate decl nodes for forward declarations and the definition," which appears to be causing significant Objective-C breakage. llvm-svn: 110803
* Consider this code snippet:Bill Wendling2010-08-113-3/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | float t1(int argc) { return (argc == 1123) ? 1.234f : 2.38213f; } We would generate truly awful code on ARM (those with a weak stomach should look away): _t1: movw r1, #1123 movs r2, #1 movs r3, #0 cmp r0, r1 mov.w r0, #0 it eq moveq r0, r2 movs r1, #4 cmp r0, #0 it ne movne r3, r1 adr r0, #LCPI1_0 ldr r0, [r0, r3] bx lr The problem was that legalization was creating a cascade of SELECT_CC nodes, for for the comparison of "argc == 1123" which was fed into a SELECT node for the ?: statement which was itself converted to a SELECT_CC node. This is because the ARM back-end doesn't have custom lowering for SELECT nodes, so it used the default "Expand". I added a fairly simple "LowerSELECT" to the ARM back-end. It takes care of this testcase, but can obviously be expanded to include more cases. Now we generate this, which looks optimal to me: _t1: movw r1, #1123 movs r2, #0 cmp r0, r1 adr r0, #LCPI0_0 it eq moveq r2, #4 ldr r0, [r0, r2] bx lr .align 2 LCPI0_0: .long 1075344593 @ float 2.382130e+00 .long 1067316150 @ float 1.234000e+00 llvm-svn: 110799
* Report error if codegen tries to instantiate a ARM target when the cpu does ↵Evan Cheng2010-08-116-13/+15
| | | | | | support it. e.g. cortex-m* processors. llvm-svn: 110798
* ArchV7M implies HW division instructions.Evan Cheng2010-08-111-3/+3
| | | | llvm-svn: 110797
* ArchV6T2, V7A, and V7M implies Thumb2; Archv7A implies NEON.Evan Cheng2010-08-111-11/+10
| | | | llvm-svn: 110796
* Add ARM Archv6M and let it implies FeatureDB (having dmb, etc.)Evan Cheng2010-08-113-38/+42
| | | | llvm-svn: 110795
* MC/ARM: Add basic support for handling predication by parsing it out of the ↵Daniel Dunbar2010-08-112-1/+52
| | | | | | mnemonic into a separate operand form. llvm-svn: 110794
* MC/ARM: Split mnemonic on '.' characters.Daniel Dunbar2010-08-111-3/+16
| | | | llvm-svn: 110793
* MC/ARM: Fill in ARMOperand::dump a bit.Daniel Dunbar2010-08-111-1/+21
| | | | llvm-svn: 110792
* llvm-mc: Add -show-inst-operands, for dumping the parsed instruction ↵Daniel Dunbar2010-08-114-1/+26
| | | | | | representation before matching. llvm-svn: 110791
* MCAsmParser: Add dump() hook to MCParsedAsmOperand.Daniel Dunbar2010-08-114-6/+10
| | | | llvm-svn: 110790
* tblgen/AsmMatcher: Treat '.' in assembly strings as a token separator.Daniel Dunbar2010-08-111-0/+8
| | | | llvm-svn: 110789
* MC/ARM: Add an ARMOperand class for condition codes.Daniel Dunbar2010-08-112-4/+30
| | | | llvm-svn: 110788
* Really control isel of barrier instructions with cpu feature.Evan Cheng2010-08-112-4/+4
| | | | llvm-svn: 110787
* Add Cortex-M0 support. It's a ARMv6m device (no ARM mode) with some 32-bitEvan Cheng2010-08-112-5/+17
| | | | | | instructions: dmb, dsb, isb, msr, and mrs. llvm-svn: 110786
* - Add subtarget feature -mattr=+db which determine whether an ARM cpu has theEvan Cheng2010-08-119-55/+88
| | | | | | | | | memory and synchronization barrier dmb and dsb instructions. - Change instruction names to something more sensible (matching name of actual instructions). - Added tests for memory barrier codegen. llvm-svn: 110785
* MemRegion can refer to ASTContext without external help.Zhongxing Xu2010-08-1118-85/+72
| | | | llvm-svn: 110784
* MC/ARM: Switch to using the generated match functions instead of stub ↵Daniel Dunbar2010-08-111-81/+30
| | | | | | implementations. llvm-svn: 110783
* MC/ARM: Enable generation of the ARM asm matcher, not that it can do much.Daniel Dunbar2010-08-112-2/+3
| | | | llvm-svn: 110782
* ARM: Mark some disassembler only instructions as not available for matching --Daniel Dunbar2010-08-111-0/+4
| | | | | | | for some reason they have a very odd MCInst form where the operands overlap, but I haven't dug in to find out why yet. llvm-svn: 110781
* ARM: Quote $p in an asm string.Daniel Dunbar2010-08-111-2/+2
| | | | llvm-svn: 110780
* tblgen/AsmMatcher: Downgrade instructions with tied operands to a debug-only ↵Daniel Dunbar2010-08-111-3/+6
| | | | | | warning, for now. llvm-svn: 110779
* Improve indentation.Owen Anderson2010-08-111-27/+28
| | | | llvm-svn: 110778
* Added support for persistent variables to theSean Callanan2010-08-1112-64/+444
| | | | | | | | | | | | | | | | | | | | | | | | | expression parser. It is now possible to type: (lldb) expr int $i = 5; $i + 1 (int) 6 (lldb) expr $i + 2 (int) 7 The skeleton for automatic result variables is also implemented. The changes affect: - the process, which now contains a ClangPersistentVariables object that holds persistent variables associated with it - the expression parser, which now uses the persistent variables during variable lookup - TaggedASTType, where I loaded some commonly used tags into a header so that they are interchangeable between different clients of the class llvm-svn: 110777
* tests: Add a missing -Xclang.Daniel Dunbar2010-08-111-1/+1
| | | | llvm-svn: 110776
* ARM: Recognize single precision float register names.Daniel Dunbar2010-08-112-1/+25
| | | | | | | - We don't recognize double or NEON register names yet -- we don't have the infrastructure to generate the right clobbers for them. llvm-svn: 110775
* ARM: Swap which registers we consider real / aliases to match LLVM and llvm-gcc.Daniel Dunbar2010-08-112-6/+13
| | | | llvm-svn: 110774
* Improve our handling of user-defined conversions when computingDouglas Gregor2010-08-115-79/+150
| | | | | | | | | | | | | | | | | | | | | | implicit conversion sequences. In particular, model the "standard conversion" from a class to its own type (or a base type) directly as a standard conversion in the normal path *without* trying to determine if there is a valid copy constructor. This appears to match the intent of C++ [over.best.ics]p6 and more closely matches GCC and EDG. As part of this, model non-lvalue reference initialization via user-defined conversion in overloading the same way we handle it in InitializationSequence, separating the "general user-defined conversion" and "conversion to compatible class type" cases. The churn in the overload-call-copycon.cpp test case is because the test case was originally wrong; it assumed that we should do more checking for copy constructors that we actually should, which affected overload resolution. Fixes PR7055. Bootstrapped okay. llvm-svn: 110773
* Remove AVX 256-bit cast intrinsics now that clang is using ↵Bruno Cardoso Lopes2010-08-111-12/+0
| | | | | | __builtin_shufflevector for those llvm-svn: 110772
* Remove 256-bit cast built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes2010-08-113-18/+9
| | | | | | __builtin_shufflevector with the appropriate arguments llvm-svn: 110771
* Make this test a little less dependent on exact optimizer results.John McCall2010-08-111-6/+6
| | | | llvm-svn: 110770
* Remove AVX 256-bit unpack and interleave intrinsics now that clang is using ↵Bruno Cardoso Lopes2010-08-111-16/+0
| | | | | | __builtin_shufflevector for those llvm-svn: 110769
* Remove 256-bit unpack built-ins and make the AVX intrinsic call llvm ↵Bruno Cardoso Lopes2010-08-113-12/+4
| | | | | | __builtin_shufflevector with the appropriate arguments llvm-svn: 110768
OpenPOWER on IntegriCloud