summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Correct test inovocations to use %clang_cc1 rather than direct invocation ↵David Tweed2012-10-2510-17/+17
| | | | | | (so that it can have additional options set when trying to debug issues causing regressions). llvm-svn: 166681
* This patch addresses a PPC64 ELF issue with passing parameters consisting ofBill Schmidt2012-10-253-28/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | structs having size 3, 5, 6, or 7. Such a struct must be passed and received as right-justified within its register or memory slot. The problem is only present for structs that are passed in registers. Previously, as part of a patch handling all structs of size less than 8, I added logic to rotate the incoming register so that the struct was left- justified prior to storing the whole register. This was incorrect because the address of the parameter had already been adjusted earlier to point to the right-adjusted value in the storage slot. Essentially I had accidentally accounted for the right-adjustment twice. In this patch, I removed the incorrect logic and reorganized the code to make the flow clearer. The removal of the rotates changes the expected code generation, so test case structsinregs.ll has been modified to reflect this. I also added a new test case, jaggedstructs.ll, to demonstrate that structs of these sizes can now be properly received and passed. I've built and tested the code on powerpc64-unknown-linux-gnu with no new regressions. I also ran the GCC compatibility test suite and verified that earlier problems with these structs are now resolved, with no new regressions. llvm-svn: 166680
* Modify the targets to set appropriate calling convention defaults and C ↵David Tweed2012-10-252-6/+8
| | | | | | | | variables when using a gnueabihf or aapcs-vfp target. Tested by me and Wei-Ren Chen. llvm-svn: 166679
* PowerPC: Initial support for PowerPC64 MCJITAdhemerval Zanella2012-10-254-7/+348
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds initial support for MCJIT for PPC64-elf-abi. The TOC relocation and ODP handling is implemented. It fixes the following ExecutionEngine testcases: ExecutionEngine/2003-01-04-ArgumentBug.ll ExecutionEngine/2003-01-04-LoopTest.ll ExecutionEngine/2003-01-04-PhiTest.ll ExecutionEngine/2003-01-09-SARTest.ll ExecutionEngine/2003-01-10-FUCOM.ll ExecutionEngine/2003-01-15-AlignmentTest.ll ExecutionEngine/2003-05-11-PHIRegAllocBug.ll ExecutionEngine/2003-06-04-bzip2-bug.ll ExecutionEngine/2003-06-05-PHIBug.ll ExecutionEngine/2003-08-15-AllocaAssertion.ll ExecutionEngine/2003-08-21-EnvironmentTest.ll ExecutionEngine/2003-08-23-RegisterAllocatePhysReg.ll ExecutionEngine/2003-10-18-PHINode-ConstantExpr-CondCode-Failure.ll ExecutionEngine/simplesttest.ll ExecutionEngine/simpletest.ll ExecutionEngine/stubs.ll ExecutionEngine/test-arith.ll ExecutionEngine/test-branch.ll ExecutionEngine/test-call-no-external-funcs.ll ExecutionEngine/test-cast.ll ExecutionEngine/test-common-symbols.ll ExecutionEngine/test-constantexpr.ll ExecutionEngine/test-fp-no-external-funcs.ll ExecutionEngine/test-fp.ll ExecutionEngine/test-global-init-nonzero.ll ExecutionEngine/test-global.ll ExecutionEngine/test-loadstore.ll ExecutionEngine/test-local.ll ExecutionEngine/test-logical.ll ExecutionEngine/test-loop.ll ExecutionEngine/test-phi.ll ExecutionEngine/test-ret.ll ExecutionEngine/test-return.ll ExecutionEngine/test-setcond-fp.ll ExecutionEngine/test-setcond-int.ll ExecutionEngine/test-shift.ll llvm-svn: 166678
* Initial TOC support for PowerPC64 object creationAdhemerval Zanella2012-10-2511-23/+223
| | | | | | | | | | | | | | This patch adds initial PPC64 TOC MC object creation using the small mcmodel (a single 64K TOC) adding the some TOC relocations (R_PPC64_TOC, R_PPC64_TOC16, and R_PPC64_TOC16DS). The addition of 'undefinedExplicitRelSym' hook on 'MCELFObjectTargetWriter' is meant to avoid the creation of an unreferenced ".TOC." symbol (used in the .odp creation) as well to set the R_PPC64_TOC relocation target as the temporary ".TOC." symbol. On PPC64 ABI, the R_PPC64_TOC relocation should not point to any symbol. llvm-svn: 166677
* Initialize debug info for special cases of functions that lack declarations ↵Alexey Samsonov2012-10-257-7/+94
| | | | | | and are generated by Clang (global initializers/destructors, thunks) . Fixes PR13942. llvm-svn: 166676
* unittests/ToolingTest.cpp: Suppress ↵NAKAMURA Takumi2012-10-251-0/+2
| | | | | | newFrontendActionFactory.InjectsEndOfSourceFileCallback on Win32 for now. Investigating. llvm-svn: 166674
* Adds the possibility to inject a callback that's called after each ↵Manuel Klimek2012-10-252-8/+57
| | | | | | | | translation unit is processed. This is important when one wants to deduplicate results during one run over a translation unit by pointer identity of AST nodes. llvm-svn: 166671
* Another speculative commit to try to fix Polly's build. This is more delta thanChandler Carruth2012-10-251-5/+8
| | | | | | | I like to make w/o being able to build, but I don't have the dependencies to build and test polly. I'll revert if the build bots don't like it. llvm-svn: 166670
* The test avx-intel-ocl.ll failed. I can't reproduce on any of my machines. I ↵Elena Demikhovsky2012-10-251-4/+4
| | | | | | added -mcpu flag, may be it will fix the problem llvm-svn: 166669
* Another fix for a build-bot reported API mismatch.Chandler Carruth2012-10-251-1/+2
| | | | llvm-svn: 166668
* Try to revive the Polly builders after this LLVM API change.Chandler Carruth2012-10-251-1/+2
| | | | llvm-svn: 166666
* Atom has SIMD instruction set extension up to SSSE3Michael Liao2012-10-251-1/+1
| | | | llvm-svn: 166665
* Clean up where SlotSize should be used instead of pointer size.Michael Liao2012-10-252-19/+17
| | | | llvm-svn: 166664
* Teach SROA how to split whole-alloca integer loads and stores intoChandler Carruth2012-10-253-27/+202
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | smaller integer loads and stores. The high-level motivation is that the frontend sometimes generates a single whole-alloca integer load or store during ABI lowering of splittable allocas. We need to be able to break this apart in order to see the underlying elements and properly promote them to SSA values. The hope is that this fixes some performance regressions on x86-32 with the new SROA pass. Unfortunately, this causes quite a bit of churn in the test cases, and bloats some IR that comes out. When we see an alloca that consists soley of bits and bytes being extracted and re-inserted, we now do some splitting first, before building widened integer "bucket of bits" representations. These are always well folded by instcombine however, so this shouldn't actually result in missed opportunities. If this splitting of all-integer allocas does cause problems (perhaps due to smaller SSA values going into the RA), we could potentially go to some extreme measures to only do this integer splitting trick when there are non-integer component accesses of an alloca, but discovering this is quite expensive: it adds yet another complete walk of the recursive use tree of the alloca. Either way, I will be watching build bots and LNT bots to see what fallout there is here. If anyone gets x86-32 numbers before & after this change, I would be very interested. llvm-svn: 166662
* -fcatch-undefined-behavior checking for appropriate vptr value: Clang ↵Richard Smith2012-10-254-12/+94
| | | | | | CodeGen side. llvm-svn: 166661
* -fcatch-undefined-behavior checking for appropriate vptr value: library side.Richard Smith2012-10-257-4/+397
| | | | llvm-svn: 166660
* Take into account that there may be a BOM at the beginning of the file,Argyrios Kyrtzidis2012-10-252-3/+12
| | | | | | when computing the size of the precompiled preamble. llvm-svn: 166659
* Updated LLDB's use of the DiagnosticsEngine toSean Callanan2012-10-251-1/+1
| | | | | | reflect a change to the initializer. llvm-svn: 166657
* Update warning-flag testDouglas Gregor2012-10-251-2/+1
| | | | llvm-svn: 166656
* Revert r166647 to rethink the patch...Bill Wendling2012-10-255-81/+1
| | | | llvm-svn: 166655
* Remove the old predefines-buffer diffing code completely. It's beenDouglas Gregor2012-10-253-388/+1
| | | | | | | replaced by the more efficient, cleaner preprocessor-option version that occurs earlier in PCH validation. llvm-svn: 166654
* Fix computation of predefines buffer from the preprocessor-optionDouglas Gregor2012-10-251-10/+1
| | | | | | checking, and disable the old predefines-buffer-diff'ing code path. llvm-svn: 166653
* Identify a kdp session that is connecting to an EFI monitor,Jason Molenda2012-10-253-3/+23
| | | | | | | use a DynamicLoaderStatic dynamic loader for the session instead of a kernel or user dynamic loader. llvm-svn: 166652
* When we're devirtualizing a method call, make sure the method has the ↵Eli Friedman2012-10-252-9/+8
| | | | | | | | correct IR type. Reported in the thread "devirtualisation appears to crash clang on covariant functions on ARM" on cfe-dev. llvm-svn: 166651
* ASTUnit doesn't actually care about the predefines; don't record them.Douglas Gregor2012-10-251-18/+2
| | | | llvm-svn: 166650
* Add support for additional reduction variables: AND, OR, XOR.Nadav Rotem2012-10-252-7/+121
| | | | | | Patch by Paul Redmond <paul.redmond@intel.com>. llvm-svn: 166649
* The the preprocessor option validator to compute suggestedDouglas Gregor2012-10-252-17/+82
| | | | | | | predefines. We're not quite ready to cut over to these suggested predefines yet, however. llvm-svn: 166648
* Add some support for diagnosing possibly mismatched constraint, type size andBill Wendling2012-10-255-1/+81
| | | | | | | modifiers. (From an idea by Eric...) <rdar://problem/12284092> llvm-svn: 166647
* Stop running the machine code verifier unconditionally.Jakob Stoklund Olesen2012-10-251-1/+0
| | | | llvm-svn: 166646
* 'constexpr' and 'friend' are both declaration specifiers. Teach the parser ↵Richard Smith2012-10-252-4/+9
| | | | | | this, for better error recovery. llvm-svn: 166645
* PR14171: Don't crash if we hit one of the paths where GetFullTypeForDeclaratorRichard Smith2012-10-243-0/+27
| | | | | | rebuilds a function type, and that function type has parens around its name. llvm-svn: 166644
* revert accidental changeNadav Rotem2012-10-241-1/+1
| | | | llvm-svn: 166643
* Implement a basic cost model for vector and scalar instructions. Nadav Rotem2012-10-246-23/+168
| | | | llvm-svn: 166642
* Teach the PCH validator to check the preprocessor options, especiallyDouglas Gregor2012-10-247-12/+175
| | | | | | | | | | | | | | | the macros that are #define'd or #undef'd on the command line. This checking happens much earlier than the current macro-definition checking and is far cleaner, because it does a direct comparison rather than a diff of the predefines buffers. Moreover, it allows us to use the result of this check to skip over PCH files within a directory that have non-matching -D's or -U's on the command line. Finally, it improves the diagnostics a bit for mismatches, fixing <rdar://problem/8612222>. The old predefines-buffer diff'ing will go away in a subsequent commit. llvm-svn: 166641
* Tell llvm-mc we're using intel syntax, so we don't have to use directives.Chad Rosier2012-10-241-8/+6
| | | | llvm-svn: 166640
* Add a bit of documentation on the annotated disassembly output.Kevin Enderby2012-10-242-0/+94
| | | | llvm-svn: 166639
* [ms-inline asm] Add back-end test case for r166632. Make sure we emit theChad Rosier2012-10-242-0/+35
| | | | | | | correct .s output as well as get the correct encoding by the integrated assembler. llvm-svn: 166638
* Don't try to install c-index-test with BUILD_CLANG_ONLY. rdar://12492703Bob Wilson2012-10-241-1/+4
| | | | llvm-svn: 166637
* c-index-test.c: Split a format string. [-Woverlength-strings]NAKAMURA Takumi2012-10-241-1/+2
| | | | | FIXME: They are still long strings without formatter in printf(3)! llvm-svn: 166636
* Added --framework and --executable argumentsSean Callanan2012-10-241-83/+117
| | | | | | | | | to dotest.py so that the testsuite can run against any LLDB. <rdar://problem/12512268> llvm-svn: 166635
* Fix a compiler warning with an unused variable.Micah Villmow2012-10-241-1/+0
| | | | llvm-svn: 166634
* [ms-inline asm] Test case for r166632.Chad Rosier2012-10-241-0/+16
| | | | llvm-svn: 166633
* [ms-inline asm] Add support for parsing the '.' operator. Given,Chad Rosier2012-10-241-0/+34
| | | | | | | | | | | | [register].field The operator returns the value at the location pointed to by register plus the offset of field within its structure or union. This patch only handles immediate fields (i.e., [eax].4). The original displacement has to be a MCConstantExpr as well. Part of rdar://12470415 and rdar://12470514 llvm-svn: 166632
* Fixing the test case for rdar://12481949 to do the right thing with our new ↵Enrico Granata2012-10-241-2/+4
| | | | | | rules for sign-extension in GetValueAsUnsigned() llvm-svn: 166631
* Tidy up. No functional change intended.Chad Rosier2012-10-241-14/+15
| | | | llvm-svn: 166630
* Don't use stack unwinding to provide the location information forJoerg Sonnenberger2012-10-244-69/+77
| | | | | | SetTheory, but pass down the location explicitly. llvm-svn: 166629
* And one more logging message goes awayEnrico Granata2012-10-241-1/+0
| | | | llvm-svn: 166628
* Reverting unwanted changes to the test suiteEnrico Granata2012-10-242-12/+3
| | | | llvm-svn: 166627
* Reverting the changes to Scalar since this class needs to follow C rules for ↵Enrico Granata2012-10-243-16/+23
| | | | | | type promotion llvm-svn: 166626
OpenPOWER on IntegriCloud