summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ms-inline asm] The IR representation of inline assembly enumerates the inputChad Rosier2012-09-062-1/+26
| | | | | | | and output expressions much like that in GNU-style inline assembly. Output expressions are first. Do this for MS-style inline asms. llvm-svn: 163342
* When you reach the bottom of the inlined stack, don't say you can do a ↵Jim Ingham2012-09-061-1/+6
| | | | | | virtual step. llvm-svn: 163341
* Include a useful bit of log output in the "step" as well as the "process" logs.Jim Ingham2012-09-061-1/+1
| | | | llvm-svn: 163340
* Release build: guard dump functions with "ifndef NDEBUG"Manman Ren2012-09-0620-0/+54
| | | | | | No functional change. llvm-svn: 163339
* refactoring + objective-C specific test for my last patch.Fariborz Jahanian2012-09-064-10/+25
| | | | | | // rdar://12233989 llvm-svn: 163338
* Don't try to check override control for invalid member functions. Fixes a ↵Richard Smith2012-09-062-0/+8
| | | | | | crash in a corner case. Patch by Olivier Goffart! llvm-svn: 163337
* Allow overlaps between virtreg and physreg live ranges.Jakob Stoklund Olesen2012-09-067-14/+70
| | | | | | | | | | | | | | | | | The RegisterCoalescer understands overlapping live ranges where one register is defined as a copy of the other. With this change, register allocators using LiveRegMatrix can do the same, at least for copies between physical and virtual registers. When a physreg is defined by a copy from a virtreg, allow those live ranges to overlap: %CL<def> = COPY %vreg11:sub_8bit; GR32_ABCD:%vreg11 %vreg13<def,tied1> = SAR32rCL %vreg13<tied0>, %CL<imp-use,kill> We can assign %vreg11 to %ECX, overlapping the live range of %CL. llvm-svn: 163336
* Handle overlapping regunit intervals in LiveIntervals::addKillFlags().Jakob Stoklund Olesen2012-09-063-4/+46
| | | | | | | | | | | | | | | | | | We will soon allow virtual register live ranges to overlap regunit live ranges when the physreg is defined as a copy of the virtreg: %EAX = COPY %vreg5 FOO %vreg5 BAR %EAX<kill> There is no real interference since %vreg5 and %EAX have the same value where they overlap. This patch prevents addKillFlags from adding virtreg kill flags to FOO where the assigned physreg is overlapping the virtual register live range. llvm-svn: 163335
* Clear kill flags while computing live ranges.Jakob Stoklund Olesen2012-09-061-1/+5
| | | | | | | | | Kill flags are difficult to maintain, and liveness queries are better handled by live intervals. Kill flags are reinserted after register allocation by addKillFlags(). llvm-svn: 163334
* Use custom ABIInfo for le32/PNaCl argument codegenDerek Schuff2012-09-063-0/+188
| | | | | | | | | This patch uses a new ABIInfo implementation specific to the le32 target, rather than falling back to DefaultABIInfo. Its behavior is basically the same, but it also allows the regparm argument attribute. It also includes basic tests for argument codegen and attributes. llvm-svn: 163333
* Patch from Daniel Malea to fix the build on Linux. ThanksEnrico Granata2012-09-064-6/+7
| | | | llvm-svn: 163332
* Enabling the UTF conversion routines that were previously conditionally ↵Enrico Granata2012-09-062-4/+0
| | | | | | ifdef'ed out. This change is required to support enhancements in the LLDB data formatters llvm-svn: 163331
* Fixing the return type information for objc_sync_enter and objc_sync_exit. ↵Aaron Ballman2012-09-065-14/+14
| | | | | | Patch thanks to Joe Ranieri! llvm-svn: 163330
* c: make __attribute__((unused)) transitive.Fariborz Jahanian2012-09-062-4/+26
| | | | | | | Don't warn if annotated decl is used inside another unused. // rdar://12233989 llvm-svn: 163329
* Tighten up regexps some more.Jakob Stoklund Olesen2012-09-061-4/+4
| | | | | | | These tests were failing for me because the .* was greedily matching up to the /libexec/ld-elf.so.1" later on the same line. llvm-svn: 163328
* Remove unused typedefs. Found by gcc48.Roman Divacky2012-09-061-12/+0
| | | | llvm-svn: 163327
* tsan: fix code styleDmitry Vyukov2012-09-061-1/+1
| | | | llvm-svn: 163326
* Dont cast away const needlessly. Found by gcc48 -Wcast-qual.Roman Divacky2012-09-0621-38/+40
| | | | llvm-svn: 163325
* Dont cast away const needlessly. Found by gcc48 -Wcast-qual.Roman Divacky2012-09-063-3/+4
| | | | llvm-svn: 163324
* Diagnose invalid alignments on duplicating VLDn instructions.Tim Northover2012-09-063-2/+10
| | | | | | Patch by Chris Lidbury. llvm-svn: 163323
* tsan: increase max shadow stack size + reduce memory consumption at the same ↵Dmitry Vyukov2012-09-067-10/+99
| | | | | | time (by not memorizing full stacks in traces) llvm-svn: 163322
* Check for invalid alignment values when decoding VLDn/VSTn (single ln) ↵Tim Northover2012-09-066-8/+131
| | | | | | | | instructions. Patch by Chris Lidbury. llvm-svn: 163321
* tsan: fix Go build scriptDmitry Vyukov2012-09-061-1/+1
| | | | llvm-svn: 163320
* BasicAA: Recognize cyclic NoAlias phisArnold Schwaighofer2012-09-062-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enhances basic alias analysis to recognize phis whose first incoming values are NoAlias and whose other incoming values are just the phi node itself through some amount of recursion. Example: With this change basicaa reports that ptr_phi and ptr_phi2 do not alias each other. bb: ptr = ptr2 + 1 loop: ptr_phi = phi [bb, ptr], [loop, ptr_plus_one] ptr2_phi = phi [bb, ptr2], [loop, ptr2_plus_one] ... ptr_plus_one = gep ptr_phi, 1 ptr2_plus_one = gep ptr2_phi, 1 This enables the elimination of one load in code like the following: extern int foo; int test_noalias(int *ptr, int num, int* coeff) { int *ptr2 = ptr; int result = (*ptr++) * (*coeff--); while (num--) { *ptr2++ = *ptr; result += (*coeff--) * (*ptr++); } *ptr = foo; return result; } Part 2/2 of fix for PR13564. llvm-svn: 163319
* Use correct part of complex operand to encode VST1 alignment.Tim Northover2012-09-062-2/+79
| | | | | | Patch by Chris Lidbury. llvm-svn: 163318
* BasicAA: GEPs of NoAlias'ing base ptr with equivalent indices are NoAliasArnold Schwaighofer2012-09-062-9/+119
| | | | | | | | | | | | If we can show that the base pointers of two GEPs don't alias each other using precise analysis and the indices and base offset are equal then the two GEPs also don't alias each other. This is primarily needed for the follow up patch that analyses NoAlias'ing PHI nodes. Part 1/2 of fix for PR13564. llvm-svn: 163317
* Disable stack coloring by default in order to resolve the i386 failures.Nadav Rotem2012-09-062-3/+3
| | | | llvm-svn: 163316
* Tablegen: Add OperandWithDefaultOps Operand typeTom Stellard2012-09-065-56/+53
| | | | | | | This Operand type takes a default argument, and is initialized to this value if it does not appear in a patter. llvm-svn: 163315
* Fix two compiler warnings: must use at least one argument for "..." in a ↵Alexander Potapenko2012-09-062-2/+2
| | | | | | variadic macros, signed vs. unsigned comparison. llvm-svn: 163314
* [asan] Use __ANDROID__ guard in asan_test.Evgeniy Stepanov2012-09-061-1/+1
| | | | llvm-svn: 163313
* AVX2 optimization.Elena Demikhovsky2012-09-062-0/+51
| | | | | | Added generation of VPSHUB instruction for <32 x i8> vector shuffle when possible. llvm-svn: 163312
* Use the return value of dladdr() to avoid Clang warning.Alexander Potapenko2012-09-061-1/+1
| | | | llvm-svn: 163311
* Fix a few old-GCC warnings. No functional change.Nadav Rotem2012-09-062-2/+2
| | | | llvm-svn: 163309
* [asan] increase max stack size to 256 (+test)Kostya Serebryany2012-09-064-14/+43
| | | | llvm-svn: 163308
* Fix the test by specifying an exact cpu model.Nadav Rotem2012-09-061-2/+2
| | | | llvm-svn: 163307
* Fix self-host; ensure signedness is consistent.James Molloy2012-09-061-2/+2
| | | | llvm-svn: 163306
* Fix switch_to_lookup_table.ll test from r163302.Hans Wennborg2012-09-062-11/+12
| | | | | | | | The lookup tables did not get built in a deterministic order. This makes them get built in the order that the corresponding phi nodes were found. llvm-svn: 163305
* Improve codegen for BUILD_VECTORs on ARM.James Molloy2012-09-062-10/+90
| | | | | | If we have a BUILD_VECTOR that is mostly a constant splat, it is often better to splat that constant then insertelement the non-constant lanes instead of insertelementing every lane from an undef base. llvm-svn: 163304
* Update AddressSanitizer docsAlexey Samsonov2012-09-061-5/+3
| | | | llvm-svn: 163303
* Build lookup tables for switches (PR884)Hans Wennborg2012-09-063-2/+429
| | | | | | | | | | | | | | | | | | | | | | This adds a transformation to SimplifyCFG that attemps to turn switch instructions into loads from lookup tables. It works on switches that are only used to initialize one or more phi nodes in a common successor basic block, for example: int f(int x) { switch (x) { case 0: return 5; case 1: return 4; case 2: return -2; case 5: return 7; case 6: return 9; default: return 42; } This speeds up the code by removing the hard-to-predict jump, and reduces code size by removing the code for the jump targets. llvm-svn: 163302
* Add "movsbl %dh, %ecx" and "testb %r8, %r8" to mach_override.Alexander Potapenko2012-09-061-0/+2
| | | | | | This should fix http://code.google.com/p/address-sanitizer/issues/detail?id=105 llvm-svn: 163301
* [ASan] actually remove old makefileAlexey Samsonov2012-09-061-334/+0
| | | | llvm-svn: 163300
* Add a new optimization pass: Stack Coloring, that merges disjoint static ↵Nadav Rotem2012-09-0622-16/+1057
| | | | | | | | allocations (allocas). Allocas are known to be disjoint if they are marked by disjoint lifetime markers (@llvm.lifetime.XXX intrinsics). llvm-svn: 163299
* Optimize codegen for VSETLNi{8,16,32} operating on Q registers. Degenerate ↵James Molloy2012-09-064-18/+102
| | | | | | to a VSETLN on D registers, instead of an (INSERT_SUBREG (VSETLN (EXTRACT_SUBREG ))) sequence to help the register coalescer. llvm-svn: 163298
* [TSan] add support for running external symbolizer other than addr2line (for ↵Alexey Samsonov2012-09-064-7/+20
| | | | | | testing purposes) llvm-svn: 163297
* [Sanitizer] remove unused fieldAlexey Samsonov2012-09-062-7/+0
| | | | llvm-svn: 163296
* Remove duplicated helper functionMichael Liao2012-09-061-17/+1
| | | | llvm-svn: 163295
* [ASan] Nuke output_tests/ in favor of lit_tests/. Stop using Makefile.old.Alexey Samsonov2012-09-0623-615/+15
| | | | llvm-svn: 163294
* Use iPTR instead of i32 for extract_subvector/insert_subvector index in ↵Craig Topper2012-09-062-78/+78
| | | | | | lowering and patterns. This makes it consistent with the incoming DAG nodes from the DAG builder. llvm-svn: 163293
* Add patterns for converting stores of subvector_extracts of lower 128-bits ↵Craig Topper2012-09-062-9/+91
| | | | | | of a 256-bit vector to VMOVAPSmr/VMOVUPSmr. llvm-svn: 163292
OpenPOWER on IntegriCloud