summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* R600/SI: Refactor fneg / fabs patternsMatt Arsenault2014-08-151-22/+17
| | | | llvm-svn: 215746
* MS ABI: Virtual member pointer thunks are not unnamed_addrReid Kleckner2014-08-152-12/+17
| | | | | | They can be compared for identity. llvm-svn: 215745
* Fix the build with MSVC 2013 after new shuffle codeReid Kleckner2014-08-151-2/+8
| | | | | | | | | | | | MSVC gives this awesome diagnostic: ..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971: 'llvm::VariadicFunction1' : template parameter 'Func' : 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type argument ..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of 'llvm::VariadicFunction1' ..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of 'isShuffleEquivalentImpl' Using an anonymous namespace makes the problem go away. llvm-svn: 215744
* Missed a few places where we need to report unreadable executables.Greg Clayton2014-08-156-24/+66
| | | | | | <rdar://problem/17727734> llvm-svn: 215743
* Get testsuite running on FreeBSD.Eric Fiselier2014-08-151-0/+14
| | | | | | | | Add initial support for using LIT to run the tests on FreeBSD. More work may need to be done to add support for FreeBSD but this is a good initial step. llvm-svn: 215742
* Don't crash when specifying a core file that isn't readable.Greg Clayton2014-08-155-9/+67
| | | | | | | | | | | | | Fixes include: 1 - added new FileSpec method: bool FileSpec::Readable() 2 - detect when an executable is not readable and give an appropriate error for: (lldb) file /tmp/unreadablefile 3 - detect when a core file is not readable and give an appropriate error 4 - detect when a specified core file doesn't exist and give an appropriate error <rdar://problem/17727734> llvm-svn: 215741
* Revert "Turn off extern templates for most uses."Justin Bogner2014-08-156-10/+1
| | | | | | | | | | | Turning off explicit template instantiation leads to a pretty significant build time and code size cost. We're better off dealing with ABI incompatibility issues that come up in a less heavy handed way. This reverts commit r189610. llvm-svn: 215740
* R600/SI: Fix offset folding in some cases with shifted pointers.Matt Arsenault2014-08-155-1/+423
| | | | | | | | | | | | | Ordinarily (shl (add x, c1), c2) -> (add (shl x, c2), c1 << c2) is only done if the add has one use. If the resulting constant add can be folded into an addressing mode, force this to happen for the pointer operand. This ends up happening a lot because of how LDS objects are allocated. Since the globals are allocated next to each other, acessing the first element of the second object is directly indexed by a shifted pointer. llvm-svn: 215739
* R600: Add ldexp intrinsicMatt Arsenault2014-08-153-6/+32
| | | | llvm-svn: 215738
* [x86] Teach the new AVX v4f64 shuffle lowering to use UNPCK instructionsChandler Carruth2014-08-152-1/+67
| | | | | | where applicable for blending. llvm-svn: 215737
* Objective-C. Do not warn if user is using property-dox syntax to name aFariborz Jahanian2014-08-152-2/+6
| | | | | | | user provided setter name (as declared in @property attribute declaration). rdar://18022762 llvm-svn: 215736
* [FastISel] Remove an performance debugging assert.Juergen Ributzka2014-08-151-1/+0
| | | | | | | | As Jim pointed out this assert isn't really needed to test for correctness, because the code right afterwards does the same check and falls-back to SelectionDAG - as intended. llvm-svn: 215735
* R600/SI: Add intrinsic for ldexpMatt Arsenault2014-08-156-2/+39
| | | | llvm-svn: 215734
* [FastISel][ARM] Fix unit test from r215682.Juergen Ributzka2014-08-151-5/+3
| | | | | | Thanks Jim for finding this. llvm-svn: 215733
* R600/SI: Implement isLegalAddressingModeMatt Arsenault2014-08-153-0/+107
| | | | | | | | | | | | | The default assumes that a 16-bit signed offset is used. LDS instruction use a 16-bit unsigned offset, so it wasn't being used in some cases where it was assumed a negative offset could be used. More should be done here, but first isLegalAddressingMode needs to gain an addressing mode argument. For now, copy most of the rest of the default implementation with the immediate offset change. llvm-svn: 215732
* Move some code into a helper function. NFC.Rafael Espindola2014-08-151-45/+48
| | | | llvm-svn: 215731
* Fix a thinko in the process list formatting.Jim Ingham2014-08-151-6/+15
| | | | | | | | Made Process::Attach list the matching processes if there is more than one match. <rdar://problem/18023352> llvm-svn: 215730
* ARM: Fix and re-enable load/store optimizer for Thumb1.Moritz Roth2014-08-158-136/+105
| | | | | | | | | | | | | | | In a previous iteration of the pass, we would try to compensate for writeback by updating later instructions and/or inserting a SUBS to reset the base register if necessary. Since such a SUBS sets the condition flags it's not generally safe to do this. For now, only merge LDR/STRs if there is no writeback to the base register (LDM that loads into the base register) or the base register is killed by one of the merged instructions. These cases are clear wins both in terms of instruction count and performance. Also add three new test cases, and update the existing ones accordingly. llvm-svn: 215729
* ARM load/store optimizer: Compute BaseKill correctly.Moritz Roth2014-08-151-5/+11
| | | | | | | | | | | This adds some code back that was deleted in r92053. The location of the last merged memory operation needs to be kept up-to-date since MemOps may be in a different order to the original instruction stream to allow merging (since registers need to be in ascending order). Also simplify the logic to determine BaseKill using findRegisterUseOperandIdx to use an equivalent function call instead. llvm-svn: 215728
* [FastISel][ARM] Fix a think-o in my previous commit (r215682).Juergen Ributzka2014-08-151-15/+15
| | | | | | | | | We actually need to return the register into which we materialized the constant and not just "true" for success. This code is currently partially dead, that is why it didn't trigger any failures yet. Once I change the order of the constant materialization this code will be fully exercised. llvm-svn: 215727
* Use a valid arch name in this triple.Rafael Espindola2014-08-151-1/+1
| | | | llvm-svn: 215726
* Follow-up to r215724: fix a lint warningTimur Iskhodzhanov2014-08-151-1/+1
| | | | llvm-svn: 215725
* [ASan/Win] Introduce a new macro for malloc-like function attributes; also, ↵Timur Iskhodzhanov2014-08-151-21/+27
| | | | | | clang-format the definitions of these functions llvm-svn: 215724
* Introduce a helper to combine instruction metadata.Rafael Espindola2014-08-155-75/+75
| | | | | | | | | Replace the old code in GVN and BBVectorize with it. Update SimplifyCFG to use it. Patch by Björn Steinbrink! llvm-svn: 215723
* [ASan/Win] Remove one more reference to ↵Timur Iskhodzhanov2014-08-151-3/+1
| | | | | | __interception::GetRealFunctionAddress (follow-up to r215707) llvm-svn: 215722
* Make EmitAbsValue an static helper.Rafael Espindola2014-08-153-37/+31
| | | | llvm-svn: 215721
* Delete dead code. NFC.Rafael Espindola2014-08-155-25/+0
| | | | llvm-svn: 215720
* [ASan/Win] We don't really need to use .CRT to call __asan_init when using -MDTimur Iskhodzhanov2014-08-151-6/+0
| | | | llvm-svn: 215719
* Make EmitDwarfSetLineAddr an static helper. NFC.Rafael Espindola2014-08-153-17/+13
| | | | llvm-svn: 215718
* Make BuildSymbolDiff an static helper.Rafael Espindola2014-08-153-18/+13
| | | | llvm-svn: 215717
* [AArch64] Narrow arguments passed in wrong position on the stack inAmara Emerson2014-08-152-2/+26
| | | | | | | | | | big-endian mode. Patch by Asiri Rathnayake. Differential Revision: http://reviews.llvm.org/D4922 llvm-svn: 215716
* Make ForceExpAbs an static helper.Rafael Espindola2014-08-152-5/+4
| | | | llvm-svn: 215715
* Add isDeleted() matcher for FunctionDecl nodes.Samuel Benzaquen2014-08-154-1/+33
| | | | | | | | | | Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D4911 llvm-svn: 215714
* Add a helper to MCExpr for when an expression is know to be absolute.Rafael Espindola2014-08-154-22/+30
| | | | llvm-svn: 215713
* Remove HasLEB128.Rafael Espindola2014-08-1515-21/+7
| | | | | | We already require CFI, so it should be safe to require .leb128 and .uleb128. llvm-svn: 215712
* [PPC64] Add test case for r215685.Bill Schmidt2014-08-151-0/+534
| | | | | | | | | | I had deferred adding this test case until I could get it down to a reasonable size. That's done now. Thanks, Bill llvm-svn: 215711
* [ASan/Win] Remove a hack that seems not to be required with VS2013 anymoreTimur Iskhodzhanov2014-08-151-4/+0
| | | | llvm-svn: 215708
* [ASan/Win] Remove old, unused and non-functional code that will be ↵Timur Iskhodzhanov2014-08-153-44/+1
| | | | | | re-written soon llvm-svn: 215707
* Const-correctness, return-after-else, and formatting updates. NFC.Aaron Ballman2014-08-151-12/+10
| | | | llvm-svn: 215706
* There are no overloads of this virtual function, nor are there any callers ↵Aaron Ballman2014-08-151-3/+0
| | | | | | of it. NFC. llvm-svn: 215705
* Adding const-qualifiers to auto declarations. NFC.Aaron Ballman2014-08-151-3/+3
| | | | llvm-svn: 215704
* PPC: Clean up pointer casting, no functionality change.Benjamin Kramer2014-08-151-2/+2
| | | | | | Silences GCC's -Wcast-qual. llvm-svn: 215703
* [x86] Add the initial skeleton of type-based dispatch for AVX vectors inChandler Carruth2014-08-152-9/+208
| | | | | | | | | | | | | the new shuffle lowering and an implementation for v4 shuffles. This allows us to handle non-half-crossing shuffles directly for v4 shuffles, both integer and floating point. This currently misses places where we could perform the blend via UNPCK instructions, but otherwise generates equally good or better code for the test cases included to the existing vector shuffle lowering. There are a few cases that are entertainingly better. ;] llvm-svn: 215702
* [x86] Teach the instruction printer to decode immediate operands toChandler Carruth2014-08-153-0/+74
| | | | | | | | | BLENDPS, BLENDPD, and PBLENDW instructions into pretty shuffle comments. These will be used in my next commit as part of test cases for AVX shuffles which can directly use blend in more places. llvm-svn: 215701
* ARM: implement MRS/MSR (banked reg) system instructions.Tim Northover2014-08-1510-4/+764
| | | | | | | | | | These are system-only instructions for CPUs with virtualization extensions, allowing a hypervisor easy access to all of the various different AArch32 registers. rdar://problem/17861345 llvm-svn: 215700
* Remove testcase from README which we didn't get. We do get it now.Erik Verbruggen2014-08-151-1/+1
| | | | llvm-svn: 215699
* Current implementation of c.cond.fmt instructions only accept default cc0 ↵Vladimir Medic2014-08-1514-197/+234
| | | | | | register. This patch enables the instruction to accept other fcc registers. The aliases with default fcc0 registers are also defined. llvm-svn: 215698
* arm_acle.h: Small cleanupYi Kong2014-08-151-4/+0
| | | | | | | | | Since __SIZEOF_LONG_LONG__ is always defined as 8 on ARM targets, there's no point in checking this. NFC. Patch by Moritz Roth. llvm-svn: 215697
* [x86] Remove the duplicated code for testing whether we can widen theChandler Carruth2014-08-151-12/+4
| | | | | | | elements of a shuffle mask and simplify how it works. No functionality changed now that the bug that was here has been fixed. llvm-svn: 215696
* [LIT]Correct name of global lit configuration object to be lit_config (not lit).Eric Fiselier2014-08-151-1/+1
| | | | llvm-svn: 215695
OpenPOWER on IntegriCloud