summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Exposing MCJIT through C APIAndrew Kaylor2013-04-246-48/+249
| | | | | | Patch by Filip Pizlo llvm-svn: 180229
* Fix for r180193 - MI Sched: eliminate local vreg.Andrew Trick2013-04-241-2/+6
| | | | | | | | | Fixes PR15838. Need to check for blocks with nothing but dbg.value. I'm not sure how to force this situation with a unit test. I tried to reduce the test case in PR15838 (1k lines of metadata) but gave up. llvm-svn: 180227
* [inline asm] Fix a crasher for an invalid value type/register class.Chad Rosier2013-04-241-4/+11
| | | | | | rdar://13731657 llvm-svn: 180226
* Making invalidateInstructionCache automatic in SectionMemoryManagerAndrew Kaylor2013-04-242-3/+6
| | | | llvm-svn: 180225
* [objc-arc] Added ImpreciseAutoreleaseSet to track autorelease calls that ↵Michael Gottesman2013-04-241-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | were once autoreleaseRV instructions. Due to the semantics of ARC, we must be extremely conservative with autorelease calls inserted by the frontend since ARC gaurantees that said object will be in the autorelease pool after that point, an optimization invariant that the optimizer must respect. On the other hand, we are allowed significantly more flexibility with autoreleaseRV instructions. Often times though this flexibility is disrupted by early transformations which transform objc_autoreleaseRV => objc_autorelease if said instruction is no longer being used as part of an RV pair (generally due to inlining). Since we can not tell the difference in between an autorelease put into place by the frontend and one created through said ``strength reduction'' we can not perform these optimizations. The addition of this set gets around said issues by allowing us to differentiate in between said two cases. rdar://problem/13697741. llvm-svn: 180222
* Fixed comment typo.Michael Gottesman2013-04-241-1/+1
| | | | llvm-svn: 180221
* Mips assembler: Add 64 bit testing for JALJack Carter2013-04-241-39/+82
| | | | | Contributer: Vladimir Medic llvm-svn: 180220
* Use pointers to iterate over symbols.Rafael Espindola2013-04-244-83/+91
| | | | | | | | While here, don't report a dummy symbol for relocations that don't have symbols. We used to says such relocations were for the first defined symbol, but now we return end_symbols(). The llvm-readobj output change agrees with otool. llvm-svn: 180214
* Don't produce an empty llvm.compiler.used in LTO.Rafael Espindola2013-04-241-19/+19
| | | | | | | | | | LTO was always creating an empty llvm.compiler.used. With this patch we now first check if there is anything to be added first. Unfortunately, there is no good way to test libLTO in isolation as it needs gold or ld64, but there are bots doing LTO builds that found this problem. llvm-svn: 180202
* Don't forward declare environ on WindowsReid Kleckner2013-04-241-4/+2
| | | | | | | | | That seems to interact poorly with the environ and _environ macros defined in MSVC's <stdlib.h>. Also remove the incorrect comment about _NSGetEnviron(). llvm-svn: 180200
* LoopVectorizer: Change variable name Stride to ConsecutiveStrideArnold Schwaighofer2013-04-241-6/+6
| | | | | | | | This makes it easier to read the code. No functionality change. llvm-svn: 180197
* LoopVectorize: Scalarize padded typesArnold Schwaighofer2013-04-242-1/+38
| | | | | | | | | | | | | | | | | | This patch disables memory-instruction vectorization for types that need padding bytes, e.g., x86_fp80 has 10 bytes store size with 6 bytes padding in darwin on x86_64. Because the load/store vectorization is performed by the bit casting to a packed vector, which has incompatible memory layout due to the lack of padding bytes, the present vectorizer produces inconsistent result for memory instructions of those types. This patch checks an equality of the AllocSize of a scalar type and allocated size for each vector element, to ensure that there is no padding bytes and the array can be read/written using vector operations. Patch by Daisuke Takahashi! Fixes PR15758. llvm-svn: 180196
* LoopVectorizer: Bail out if we don't have datalayout we need itArnold Schwaighofer2013-04-244-1/+13
| | | | llvm-svn: 180195
* Revert r180189.Rafael Espindola2013-04-241-29/+24
| | | | | | | This should bring the ppc bots back. I will try to write a test that would have found the problem on a little endian system too. llvm-svn: 180194
* MI Sched: eliminate local vreg copies.Andrew Trick2013-04-246-10/+242
| | | | | | | | | | | | | | | | For now, we just reschedule instructions that use the copied vregs and let regalloc elliminate it. I would really like to eliminate the copies on-the-fly during scheduling, but we need a complete implementation of repairIntervalsInRange() first. The general strategy is for the register coalescer to eliminate as many global copies as possible and shrink live ranges to be extended-basic-block local. The coalescer should not have to worry about resolving local copies (e.g. it shouldn't attemp to reorder instructions). The scheduler is a much better place to deal with local interference. The coalescer side of this equation needs work. llvm-svn: 180193
* Register Coalescing: add a flag to disable rescheduling.Andrew Trick2013-04-241-2/+8
| | | | | | | | When MachineScheduler is enabled, this functionality can be removed. Until then, provide a way to disable it for test cases and designing MachineScheduler heuristics. llvm-svn: 180192
* MI Sched: regpressure tracing.Andrew Trick2013-04-241-0/+8
| | | | llvm-svn: 180191
* Formatting fixes.Rafael Espindola2013-04-241-31/+20
| | | | llvm-svn: 180190
* Use a pointer as the relocation iterator.Rafael Espindola2013-04-241-23/+28
| | | | | | | | Since the relocation iterator walks only the relocations in one section, we can just use a pointer and avoid fetching information about the section at every reference. llvm-svn: 180189
* Add include guards.Eric Christopher2013-04-241-0/+5
| | | | llvm-svn: 180188
* Formatting.Eric Christopher2013-04-241-1/+1
| | | | llvm-svn: 180186
* Align the __LD,__compact_unwind section.Bill Wendling2013-04-241-7/+16
| | | | | | | | I know what would be cool! We should align the compact unwind section because aligned data access is faster. <rdar://problem/13723271> llvm-svn: 180171
* remove cbe backend from sample configureJia Liu2013-04-242-2/+2
| | | | llvm-svn: 180169
* Cleanup testcase and ensure we actually exercise the inliner.Adrian Prantl2013-04-241-138/+144
| | | | | | rdar://problem/12415623 llvm-svn: 180168
* Machine model: Generate table entries for super-resources.Andrew Trick2013-04-231-14/+23
| | | | | | | | | Super-resources and resource groups are two ways of expressing overlapping sets of processor resources. Now we generate table entries the same way for both so the scheduler never needs to explicitly check for super-resources. llvm-svn: 180162
* Machine model: verify well-formed processor resource groups.Andrew Trick2013-04-232-0/+54
| | | | llvm-svn: 180161
* Machine model: rewrite a tablegen loop to avoid comparing record pointers.Andrew Trick2013-04-231-8/+4
| | | | llvm-svn: 180160
* Comment a strange field in ScheduleDAG.Andrew Trick2013-04-231-0/+4
| | | | llvm-svn: 180159
* Fix dependency layering issues caused by r180112.Eric Christopher2013-04-233-3/+4
| | | | | | Patch by Tom Stellard. (Committed while he's afk per request) llvm-svn: 180157
* Fixing cmake build for MCJIT unit testsAndrew Kaylor2013-04-231-0/+1
| | | | llvm-svn: 180150
* Fixing typo in comment.Andrew Kaylor2013-04-231-1/+1
| | | | llvm-svn: 180147
* Adding object caching support to MCJITAndrew Kaylor2013-04-235-18/+366
| | | | llvm-svn: 180146
* Hexagon: Use multiclass for combine and STri[bhwd]_shl_V4 instructions.Jyotsna Verma2013-04-233-176/+194
| | | | llvm-svn: 180145
* Hexagon: Define relations for GP-relative instructions.Jyotsna Verma2013-04-231-15/+17
| | | | | | No functionality change. llvm-svn: 180144
* Make sure the instruction right after an inlined function has aAdrian Prantl2013-04-232-4/+175
| | | | | | | | | | debug location. This solves a problem where range of an inlined subroutine is emitted wrongly. Patch by Manman Ren. Fixes rdar://problem/12415623 llvm-svn: 180140
* Add more tests for r179925 to verify correct handling of signext/zeroext; ↵Stephen Lin2013-04-232-3/+70
| | | | | | strengthen condition check to require actual MVT::i32 virtual register types, just in case (no actual functionality change) llvm-svn: 180138
* Fix typo.Rafael Espindola2013-04-233-11/+11
| | | | llvm-svn: 180137
* Lowercase "is" boolean variable prefix for consistency within function, no ↵Stephen Lin2013-04-231-12/+12
| | | | | | functionality change. llvm-svn: 180136
* Simplify yaml2obj a bit.Rafael Espindola2013-04-231-105/+112
| | | | | | | | | | | | The COFFParser now contains only a COFFYAML::Object and the string table (which is recomputed, not serialized). The structs in COFFParser now all begin with a Header field with what is actually on the COFF object. The other fields are things that are semantically part of the struct (relocations in a section for exmaple), but are not actually represented that way in the object file. llvm-svn: 180134
* Hexagon: Remove assembler mapped instruction definitions.Jyotsna Verma2013-04-236-108/+167
| | | | llvm-svn: 180133
* Change commentary for PowerPC Boolean vector contents.Bill Schmidt2013-04-231-1/+2
| | | | | | No functional change intended. llvm-svn: 180131
* [mips] Compare splat value with element size instead of calling isUIntN.Akira Hatanaka2013-04-231-2/+2
| | | | | | No intended changes in functionality. llvm-svn: 180130
* DAGCombine should not aggressively fold SEXT(VSETCC(...)) into a wider ↵Owen Anderson2013-04-232-2/+4
| | | | | | | | | VSETCC without first checking the target's vector boolean contents. This exposed an issue with PowerPC AltiVec where it appears it was setting the wrong vector boolean contents. The included change fixes the PowerPC tests, and was OK'd by Hal. llvm-svn: 180129
* Testing for _XCR_XFEATURE_ENABLED_MASK instead of a specific MSVC version ↵Aaron Ballman2013-04-231-1/+1
| | | | | | because some MSVC 2010 SP1 installations do not have the _xgetbv intrinsic. Patch thanks to Serge Pavlov! llvm-svn: 180125
* R600: Use .AMDGPU.config section to emit stacksizeVincent Lejeune2013-04-236-16/+40
| | | | llvm-svn: 180124
* R600: Add CF_ENDVincent Lejeune2013-04-236-47/+80
| | | | llvm-svn: 180123
* LoopVectorizer: Fix 15830. When scalarizing and unrolling stores make sure ↵Nadav Rotem2013-04-232-4/+40
| | | | | | | | that the order in which the elements are scalarized is the same as the original order. This fixes a miscompilation in FreeBSD's regex library. llvm-svn: 180121
* Hexagon: Remove duplicate instructions to handle global/immediate valuesJyotsna Verma2013-04-233-321/+73
| | | | | | for absolute/absolute-set addressing modes. llvm-svn: 180120
* Call the potentially costly isAnnotatedParallel() only once. Pekka Jaaskelainen2013-04-232-4/+7
| | | | | | Made the uniform write test's checks a bit stricter. llvm-svn: 180119
* Add some constraints to use of 'returned':Stephen Lin2013-04-232-0/+8
| | | | | | | | | 1) Disallow 'returned' on parameter that is also 'sret' (no sensible semantics, as far as I can tell). 2) Conservatively disallow tail calls through 'returned' parameters that also are 'zext' or 'sext' (for consistency with treatment of other zero-extending and sign-extending operations in tail call position detection...can be revised later to handle situations that can be determined to be safe). This is a new attribute that is not yet used, so there is no impact. llvm-svn: 180118
OpenPOWER on IntegriCloud