summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [mips][msa] Add fill.d instruction.Matheus Almeida2014-01-294-2/+39
| | | | | | | This instruction is only available on Mips64 cores that implement the MSA ASE. llvm-svn: 200400
* [mips][msa] CHECK-DAG-ize MSA 2r_vector_scalar.ll test.Matheus Almeida2014-01-291-27/+29
| | | | | | | | This update is a preparation for the addition of Mips64 MSA tests. No functional changes. llvm-svn: 200399
* [mips][msa] Add copy_{u,s}.d.Matheus Almeida2014-01-295-14/+92
| | | | | | | These instructions are only available on Mips64 cores that implement the MSA ASE. llvm-svn: 200398
* Support ARMv4 in the remaining non-VFP routines.Joerg Sonnenberger2014-01-293-7/+7
| | | | llvm-svn: 200397
* Move JMP/JMPc definition into assembly.h's ARM block.Joerg Sonnenberger2014-01-296-34/+8
| | | | llvm-svn: 200396
* [mips][msa] CHECK-DAG-ize MSA elm_copy.ll test.Matheus Almeida2014-01-291-46/+64
| | | | | | | | This update is a preparation for the addition of Mips64 MSA tests. No functional changes. llvm-svn: 200395
* Optimized implementation of __clzdi2 and __clzsi2 for ARM. Written inJoerg Sonnenberger2014-01-292-0/+170
| | | | | | | | collaboration with Matt Thomas. Differential Revision: http://llvm-reviews.chandlerc.com/D2630 llvm-svn: 200394
* [LPM] Fix PR18643, another scary place where loop transforms failed toChandler Carruth2014-01-294-50/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | preserve loop simplify of enclosing loops. The problem here starts with LoopRotation which ends up cloning code out of the latch into the new preheader it is buidling. This can create a new edge from the preheader into the exit block of the loop which breaks LoopSimplify form. The code tries to fix this by splitting the critical edge between the latch and the exit block to get a new exit block that only the latch dominates. This sadly isn't sufficient. The exit block may be an exit block for multiple nested loops. When we clone an edge from the latch of the inner loop to the new preheader being built in the outer loop, we create an exiting edge from the outer loop to this exit block. Despite breaking the LoopSimplify form for the inner loop, this is fine for the outer loop. However, when we split the edge from the inner loop to the exit block, we create a new block which is in neither the inner nor outer loop as the new exit block. This is a predecessor to the old exit block, and so the split itself takes the outer loop out of LoopSimplify form. We need to split every edge entering the exit block from inside a loop nested more deeply than the exit block in order to preserve all of the loop simplify constraints. Once we try to do that, a problem with splitting critical edges surfaces. Previously, we tried a very brute force to update LoopSimplify form by re-computing it for all exit blocks. We don't need to do this, and doing this much will sometimes but not always overlap with the LoopRotate bug fix. Instead, the code needs to specifically handle the cases which can start to violate LoopSimplify -- they aren't that common. We need to see if the destination of the split edge was a loop exit block in simplified form for the loop of the source of the edge. For this to be true, all the predecessors need to be in the exact same loop as the source of the edge being split. If the dest block was originally in this form, we have to split all of the deges back into this loop to recover it. The old mechanism of doing this was conservatively correct because at least *one* of the exiting blocks it rewrote was the DestBB and so the DestBB's predecessors were fixed. But this is a much more targeted way of doing it. Making it targeted is important, because ballooning the set of edges touched prevents LoopRotate from being able to split edges *it* needs to split to preserve loop simplify in a coherent way -- the critical edge splitting would sometimes find the other edges in need of splitting but not others. Many, *many* thanks for help from Nick reducing these test cases mightily. And helping lots with the analysis here as this one was quite tricky to track down. llvm-svn: 200393
* Remove -arm-enable-ehabi from Android build rules. It's enabled by default.Evgeniy Stepanov2014-01-291-1/+1
| | | | llvm-svn: 200392
* Remove -arm-enable-ehabi from Android build rules. It's enabled by default.Evgeniy Stepanov2014-01-291-1/+1
| | | | llvm-svn: 200391
* Document EHABI enabled by defaultRenato Golin2014-01-291-0/+3
| | | | llvm-svn: 200390
* Enable EHABI by defaultRenato Golin2014-01-2923-58/+63
| | | | | | | | | | | | | | | | | | | | | | After all hard work to implement the EHABI and with the test-suite passing, it's time to turn it on by default and allow users to disable it as a work-around while we fix the eventual bugs that show up. This commit also remove the -arm-enable-ehabi-descriptors, since we want the tables to be printed every time the EHABI is turned on for non-Darwin ARM targets. Although MCJIT EHABI is not working yet (needs linking with the right libraries), this commit also fixes some relocations on MCJIT regarding the EH tables/lib calls, and update some tests to avoid using EH tables when none are needed. The EH tests in the test-suite that were previously disabled on ARM now pass with these changes, so a follow-up commit on the test-suite will re-enable them. llvm-svn: 200388
* [asan] increase the buffer size for printing asan legend, add a test for legendKostya Serebryany2014-01-292-1/+4
| | | | llvm-svn: 200387
* [asan] fix build on Mac (hopefully)Kostya Serebryany2014-01-291-6/+6
| | | | llvm-svn: 200386
* Cortex-M3 and Cortex-M4 should not enable hwdiv-arm (committing again, with ↵Artyom Skrobov2014-01-292-2/+14
| | | | | | an updated test) llvm-svn: 200385
* [asan] experimental intercetor for __tls_get_addr. So far it does nothing ↵Kostya Serebryany2014-01-298-2/+301
| | | | | | interesting, actual usage will come later. See https://groups.google.com/forum/#!topic/address-sanitizer/BfwYD8HMxTM for background llvm-svn: 200384
* MC: Reorganize macro MC test along dialect linesDavid Majnemer2014-01-292-34/+122
| | | | | | | | | | | This commit seeks to do two things: - Run the surfeit of tests under the Darwin dialect. This ends up affecting tests which assumed that spaces could deliminate arguments. - The GAS dialect tests should limit their surface area to things that could plausibly work under GAS. For example, Darwin style arguments have no business being in such a test. llvm-svn: 200383
* [asan] Fix asan_device_setup.sh failure on userdebug Android.Evgeniy Stepanov2014-01-291-0/+2
| | | | llvm-svn: 200382
* Fix crash on unmatched #endif's.Manuel Klimek2014-01-292-1/+8
| | | | | | | | The following snippet would crash: #endif #if A llvm-svn: 200381
* Short-circuit a couple of queries (and avoid corruptingJohn McCall2014-01-292-1/+17
| | | | | | | | | | | | | | the linkage cache) when type-checking static local variables. There's a very deep problem here where the linkage of a declaration can suddenly massively change as soon as it's given a typedef name; these fixes, while optimizations in their own right, are really just targeted workarounds. rdar://15928125 llvm-svn: 200380
* Extensively comment bitfield layout, rearrange someJohn McCall2014-01-292-82/+165
| | | | | | | | | code for legibility, and fix a bug with bitfields in packed ms_structs. rdar://15926990 llvm-svn: 200379
* [asan] simplify a test Kostya Serebryany2014-01-291-2/+2
| | | | llvm-svn: 200378
* Delete the Matchers stored in the SmallVectors in ↵Craig Topper2014-01-292-0/+11
| | | | | | SwitchOpcodeMatcher/SwitchTypeMatcher. llvm-svn: 200377
* [Sparc] Use %r_disp32 for pc_rel entries in FDE as well.Venkatraman Govindaraju2014-01-294-1/+19
| | | | | | This makes MCAsmInfo::getExprForFDESymbol() a virtual function and overrides it in SparcMCAsmInfo. llvm-svn: 200376
* Revert r200340, "Add line table debug info to COFF files when using a win32 ↵NAKAMURA Takumi2014-01-2913-1530/+32
| | | | | | | | triple." It was incompatible with --target=i686-win32. llvm-svn: 200375
* Normalize the style in llvm-nm.cpp.Rafael Espindola2014-01-291-298/+308
| | | | | | | It had grown fairly inconsistent. I am about to change it quite a bit to also use the object api when handling IR files. llvm-svn: 200374
* [Sparc] Use %r_disp32 for pc_rel entries in gcc_except_table and eh_frame.Venkatraman Govindaraju2014-01-299-9/+134
| | | | | | | | Otherwise, assembler (gas) fails to assemble them with error message "operation combines symbols in different segments". This is because MC computes pc_rel entries with subtract expression between labels from different sections. llvm-svn: 200373
* [LPM] Fix PR18642, a pretty nasty bug in IndVars that "never mattered"Chandler Carruth2014-01-292-7/+74
| | | | | | | | | | | | | | | | | | | | | | | because of the inside-out run of LoopSimplify in the LoopPassManager and the fact that LoopSimplify couldn't be "preserved" across two independent LoopPassManagers. Anyways, in that case, IndVars wasn't correctly preserving an LCSSA PHI node because it thought it was rewriting (via SCEV) the incoming value to a loop invariant value. While it may well be invariant for the current loop, it may be rewritten in terms of an enclosing loop's values. This in and of itself is fine, as the LCSSA PHI node in the enclosing loop for the inner loop value we're rewriting will have its own LCSSA PHI node if used outside of the enclosing loop. With me so far? Well, the current loop and the enclosing loop may share an exiting block and exit block, and when they do they also share LCSSA PHI nodes. In this case, its not valid to RAUW through the LCSSA PHI node. Expected crazy test included. llvm-svn: 200372
* LoopVectorizer: Don't count the induction variable multiple timesArnold Schwaighofer2014-01-291-0/+9
| | | | | | | | When estimating register pressure, don't count the induction variable mulitple times. It is unlikely to be unrolled. This is currently disabled and hidden behind a flag ("enable-ind-var-reg-heur"). llvm-svn: 200371
* We do use pipefail these days. Update the test.Rafael Espindola2014-01-291-4/+2
| | | | llvm-svn: 200370
* [ELF][Hexagon] typeZeroFillQuick is not associated with bss section.Shankar Easwaran2014-01-296-1/+28
| | | | | | | We need to increase the memory and the filesize when we add a typeZeroFillQuick atom. llvm-svn: 200369
* [SparcV9] Use correct register class (I64RegClass) to hold the address of ↵Venkatraman Govindaraju2014-01-293-5/+42
| | | | | | _GLOBAL_OFFSET_TABLE_ in sparcv9. llvm-svn: 200368
* Use a raw_stream to implement the mangler.Rafael Espindola2014-01-293-67/+89
| | | | | | | | | This is a bit more convenient for some callers, but more importantly, it is easier to implement correctly. Doing this removes the patching of already printed data that was used for fastcall, fixing a crash with private fastcall symbols. llvm-svn: 200367
* Add support for more instruction prefixes so we can intercept functions in ↵Timur Iskhodzhanov2014-01-291-0/+22
| | | | | | the VS2013 RTL llvm-svn: 200366
* [AArch64 NEON] Lower SELECT_CC with vector operand.Kevin Qin2014-01-293-56/+362
| | | | | | | | When the scalar compare is between floating point and operands are vector, we custom lower SELECT_CC to use NEON SIMD compare for generating less instructions. llvm-svn: 200365
* lit.site.cfg:cxx_under_test should take precedence over 'which clang++'David Fang2014-01-291-4/+5
| | | | | | (reviewed by Marshall Clow) llvm-svn: 200364
* clang-cl: Better error message when trying to compile stdin (PR18640)Hans Wennborg2014-01-293-1/+12
| | | | | | | We should suggest using /Tc or /Tp to set the input type, instead of erroneously suggesting -x, which isn't a clang-cl flag. llvm-svn: 200362
* [ARM] Remove superfluous inline asm mode switch testDavid Woodhouse2014-01-291-23/+0
| | | | llvm-svn: 200361
* Remove unnecessary call to pthread_mutexattr_setpshared()Mark Seaborn2014-01-291-7/+0
| | | | | | | | | | | | | | | | | | | The default value of this attribute is PTHREAD_PROCESS_PRIVATE, so there's no point in calling pthread_mutexattr_setpshared() to set that. See: http://pubs.opengroup.org/onlinepubs/9699919799/functions/pthread_mutexattr_getpshared.html This removes some ifdefs that tend to need to be extended for other platforms (e.g. for NaCl). Note that this call was in the first implementation of Mutex, added in r22403, so it doesn't appear to have been added in response to a performance problem. Differential Revision: http://llvm-reviews.chandlerc.com/D2633 llvm-svn: 200360
* Fixing PR18430 by checking that the size of bitfields plus padding does notYunzhong Gao2014-01-292-1/+58
| | | | | | | | grow into the following virtual base. Differential Revision: http://llvm-reviews.chandlerc.com/D2560 llvm-svn: 200359
* MC: Clean up error paths in AsmParser::parseMacroArgumentDavid Majnemer2014-01-291-10/+20
| | | | | | | | | Use an RAII object Instead of inserting a call to AsmLexer::setSkipSpace(true) in all error paths. No functional change. llvm-svn: 200358
* Make createObjectFile's signature a bit less error prone.Rafael Espindola2014-01-293-5/+10
| | | | | | | This will be better with c++11, but right now file_magic converts to bool, which makes the api really easy to misuse. llvm-svn: 200357
* A new conversion warning for when an Objective-C object literal is implicitlyRichard Trieu2014-01-285-1/+88
| | | | | | | | | cast into a boolean true value. This warning will catch code like: if (@0) {} if (@"foo") {} llvm-svn: 200356
* [Sparc] Fix breakage in r200345David Woodhouse2014-01-281-9/+10
| | | | | | Oops. Don't do build tests on patches like that with --enable-targets=x86_64 llvm-svn: 200355
* Finish bringing file_type to the llvm style (other than its name).Rafael Espindola2014-01-281-6/+5
| | | | | | | | | | I assume that the name is file_type because it is the name of a c++11 type that we will use once we convert, but at least our current implementation can look like llvm code. Thanks to David Blakie for the push. llvm-svn: 200354
* Be more explicit about which overloaded variant to use. Caught by ASan!Nick Kledzik2014-01-281-1/+1
| | | | llvm-svn: 200353
* Convert to the inner enum so the compiler can warn about it in switches.Rafael Espindola2014-01-281-3/+2
| | | | llvm-svn: 200352
* Tests for mode switchingDavid Woodhouse2014-01-283-0/+40
| | | | | | | 1. test that inlineasm works 2. test that relaxable instructions are re-encoded in the correct mode. llvm-svn: 200351
* Delete MCSubtargetInfo data members from target MCCodeEmitter classesDavid Woodhouse2014-01-286-107/+99
| | | | | | | | The subtarget info is explicitly passed to the EncodeInstruction method and we should use that subtarget info to influence any encoding decisions. llvm-svn: 200350
* Propagate MCSubtargetInfo through TableGen's getBinaryCodeForInstr()David Woodhouse2014-01-2810-315/+555
| | | | llvm-svn: 200349
OpenPOWER on IntegriCloud