| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Extra paranoid test for r179925 (verify that tail calls are not generated to ↵ | Stephen Lin | 2013-04-22 | 1 | -0/+14 |
| | | | | | | | 'this'-returning constructors of objects with different 'this' pointers than the caller) llvm-svn: 180032 | ||||
| * | Document the -filetype option of llc (PR #12902) | Eli Bendersky | 2013-04-22 | 1 | -0/+8 |
| | | | | | llvm-svn: 180031 | ||||
| * | Fix for PR 14965: Better error message for GEP with partially defined contents | Eli Bendersky | 2013-04-22 | 1 | -2/+7 |
| | | | | | llvm-svn: 180030 | ||||
| * | Fix for expression/breakpoint setting of gnu indirect functions. | Matt Kopec | 2013-04-22 | 1 | -1/+25 |
| | | | | | | | Do this until we are able to resolve these symbols to their actual implementations without needing runtime support. llvm-svn: 180029 | ||||
| * | [ms-inline asm] Refactor/clean up the SemaLookup interface. No functional | Chad Rosier | 2013-04-22 | 3 | -42/+39 |
| | | | | | | | | change indended. Part of rdar://13663589 llvm-svn: 180028 | ||||
| * | [ms-inline asm] Refactor/clean up the SemaLookup interface. No functional | Chad Rosier | 2013-04-22 | 2 | -26/+19 |
| | | | | | | | | change indended. Part of rdar://13663589 llvm-svn: 180027 | ||||
| * | Move debug info tests for scoped enums into a separate file. | Adrian Prantl | 2013-04-22 | 1 | -0/+26 |
| | | | | | llvm-svn: 180026 | ||||
| * | Add AArch64 into $llvm_cv_target_arch in configure, reviewed by Tim ↵ | Jia Liu | 2013-04-22 | 2 | -1/+3 |
| | | | | | | | Northover & Eric Christopher llvm-svn: 180025 | ||||
| * | Use the ugly PRIx64 macro to make format string portable. | Benjamin Kramer | 2013-04-22 | 1 | -1/+1 |
| | | | | | | | | This is debugging code so functionality isn't a concern, but mingw32 warns because it doesn't understand the %llx format specifier. llvm-svn: 180024 | ||||
| * | typo | Jia Liu | 2013-04-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 180023 | ||||
| * | C++1y constexpr extensions, round 1: Allow most forms of declaration and | Richard Smith | 2013-04-22 | 17 | -110/+697 |
| | | | | | | | | | statement in constexpr functions. Everything which doesn't require variable mutation is also allowed as an extension in C++11. 'void' becomes a literal type to support constexpr functions which return 'void'. llvm-svn: 180022 | ||||
| * | Make doxygen comment match declaration. | Benjamin Kramer | 2013-04-22 | 1 | -1/+1 |
| | | | | | | | Found by -Wdocumentation. llvm-svn: 180021 | ||||
| * | Also verify llvm.compiler_used. | Rafael Espindola | 2013-04-22 | 2 | -1/+8 |
| | | | | | llvm-svn: 180020 | ||||
| * | Clarify that llvm.used can contain aliases. | Rafael Espindola | 2013-04-22 | 14 | -28/+75 |
| | | | | | | | | Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. llvm-svn: 180019 | ||||
| * | cmake: Only add -pedantic if LLVM didn't add it. Don't unconditionally add | Richard Smith | 2013-04-22 | 1 | -1/+6 |
| | | | | | | | | | -Wall -W, since it's already provided by LLVM's cmake config, and that overrides fixes (such as -Wno-uninitialized) which LLVM's cmake setup may have provided. llvm-svn: 180018 | ||||
| * | Fix array constant expression evaluation bug: we can have different values for | Richard Smith | 2013-04-22 | 2 | -36/+80 |
| | | | | | | | | different array elements, even if they're all constructed using the same default constructor. llvm-svn: 180017 | ||||
| * | The option is spelled -use-auto, not -loop-convert. | Eric Christopher | 2013-04-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 180016 | ||||
| * | No really, don't store anything to this since it's unconditionally | Eric Christopher | 2013-04-22 | 1 | -1/+1 |
| | | | | | | | set below. llvm-svn: 180015 | ||||
| * | Remove variable store that is never read. | Eric Christopher | 2013-04-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 180014 | ||||
| * | Remove variable store that is never read. | Eric Christopher | 2013-04-22 | 1 | -1/+0 |
| | | | | | llvm-svn: 180013 | ||||
| * | [sanitizer] Fix lint. | Evgeniy Stepanov | 2013-04-22 | 3 | -8/+11 |
| | | | | | llvm-svn: 180012 | ||||
| * | Fix for 5.5 Parameter Passing --> Stage C: | Stepan Dyatkovskiy | 2013-04-22 | 6 | -2/+192 |
| | | | | | | | | | | | | | | | | -- C.4 and C.5 statements, when NSAA is not equal to SP. -- C.1.cp statement for VA functions. Note: There are no VFP CPRCs in a variadic procedure. Before this patch "NSAA != 0" means "don't use GPRs anymore ". But there are some exceptions in AAPCS. 1. For non VA function: allocate all VFP regs for CPRC. When all VFPs are allocated CPRCs would be sent to stack, while non CPRCs may be still allocated in GRPs. 2. Check that for VA functions all params uses GPRs and then stack. No exceptions, no CPRCs here. llvm-svn: 180011 | ||||
| * | Add .ll as a valid test suffix for Object, this allows .ll -> object | Eric Christopher | 2013-04-22 | 1 | -1/+1 |
| | | | | | | | and then dumping as tests. llvm-svn: 180010 | ||||
| * | Add the same todo about a command iterator interface into the | Eric Christopher | 2013-04-22 | 1 | -0/+3 |
| | | | | | | | | other mach-o object file as well. TODO: One interface to rule them all. llvm-svn: 180009 | ||||
| * | Add a TODO about wanting an iterator interface. | Eric Christopher | 2013-04-22 | 1 | -0/+2 |
| | | | | | llvm-svn: 180008 | ||||
| * | llvm-readobj: Dump more COFF auxiliary records | Nico Rieck | 2013-04-22 | 1 | -1/+6 |
| | | | | | llvm-svn: 180007 | ||||
| * | llvm-readobj: Check for null section pointer | Nico Rieck | 2013-04-22 | 1 | -1/+1 |
| | | | | | llvm-svn: 180006 | ||||
| * | llvm-readobj: Do not print NULL StringRefs | Nico Rieck | 2013-04-22 | 3 | -11/+10 |
| | | | | | llvm-svn: 180005 | ||||
| * | Don't emit _ZTW wrappers for TLS variables which don't use the C++ ↵ | Richard Smith | 2013-04-22 | 2 | -1/+5 |
| | | | | | | | thread_local keyword. llvm-svn: 180004 | ||||
| * | Cleanup: test source files do not need to be executable | Arnaud A. de Grandmaison | 2013-04-22 | 12 | -0/+0 |
| | | | | | llvm-svn: 180003 | ||||
| * | Cleanup: test source file does not need to be executable | Arnaud A. de Grandmaison | 2013-04-22 | 1 | -0/+0 |
| | | | | | llvm-svn: 180002 | ||||
| * | Fix bin-packing behavior of constructor initialziers. | Daniel Jasper | 2013-04-22 | 2 | -20/+19 |
| | | | | | | | | | | | | | | | | | | | | | In Google style, constructor initializers need to be all on one line or one initializer per line if that does not fit. Without this patch, this non-bin-packing-behavior incorrectly extends to the parameters of the initializers. Before: Constructor() : aaaaa(aaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaa) {} After: Constructor() : aaaaa(aaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaa) {} llvm-svn: 180001 | ||||
| * | Tidy. | Eric Christopher | 2013-04-22 | 1 | -4/+6 |
| | | | | | llvm-svn: 180000 | ||||
| * | Update comment. Whitespace. | Eric Christopher | 2013-04-22 | 1 | -2/+2 |
| | | | | | llvm-svn: 179999 | ||||
| * | Revert "Revert "PR14606: Debug info for using ↵ | David Blaikie | 2013-04-22 | 4 | -3/+25 |
| | | | | | | | | | directives/DW_TAG_imported_module"" This reverts commit 179839 now that the corresponding LLVM patch has been fixed. llvm-svn: 179997 | ||||
| * | Revert "Revert "PR14606: debug info imported_module support"" | David Blaikie | 2013-04-22 | 91 | -105/+225 |
| | | | | | | | | | | | This reverts commit r179840 with a fix to test/DebugInfo/two-cus-from-same-file.ll I'm not sure why that test only failed on ARM & MIPS and not X86 Linux, even though the debug info was clearly invalid on all of them, but this ought to fix it. llvm-svn: 179996 | ||||
| * | Convert windows line endings to linux/unix line endings. | Craig Topper | 2013-04-22 | 1 | -13/+13 |
| | | | | | llvm-svn: 179995 | ||||
| * | Fix indentation. No functional change. | Craig Topper | 2013-04-22 | 1 | -5/+5 |
| | | | | | llvm-svn: 179994 | ||||
| * | Put 'else' on same line as preceding curly brace per coding standards. No ↵ | Craig Topper | 2013-04-22 | 1 | -12/+6 |
| | | | | | | | functional change. llvm-svn: 179993 | ||||
| * | Add a triple to make a test resilient to non-TLS hosts (eg: darwin10) | David Blaikie | 2013-04-22 | 1 | -1/+1 |
| | | | | | | | Making the test introduced in r179962 resilient to being run on darwin10 hosts. llvm-svn: 179992 | ||||
| * | Remove an unreachable 'break' following a 'return'. | Craig Topper | 2013-04-22 | 1 | -1/+0 |
| | | | | | llvm-svn: 179991 | ||||
| * | Improve performance of file I/O. | Bill Wendling | 2013-04-22 | 1 | -17/+21 |
| | | | | | | | | | | | The fread / fwrite calls were happening for each timer. However, that could be pretty expensive for a large number of timers. Instead, read and write the timers in one call. This gives ~10% speedup in compilation time. llvm-svn: 179990 | ||||
| * | Legalize vector truncates by parts rather than just splitting. | Jim Grosbach | 2013-04-21 | 5 | -38/+81 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than just splitting the input type and hoping for the best, apply a bit more cleverness. Just splitting the types until the source is legal often leads to an illegal result time, which is then widened and a scalarization step is introduced which leads to truly horrible code generation. With the loop vectorizer, these sorts of operations are much more common, and so it's worth extra effort to do them well. Add a legalization hook for the operands of a TRUNCATE node, which will be encountered after the result type has been legalized, but if the operand type is still illegal. If simple splitting of both types ends up with the result type of each half still being legal, just do that (v16i16 -> v16i8 on ARM, for example). If, however, that would result in an illegal result type (v8i32 -> v8i8 on ARM, for example), we can get more clever with power-two vectors. Specifically, split the input type, but also widen the result element size, then concatenate the halves and truncate again. For example on ARM, To perform a "%res = v8i8 trunc v8i32 %in" we transform to: %inlo = v4i32 extract_subvector %in, 0 %inhi = v4i32 extract_subvector %in, 4 %lo16 = v4i16 trunc v4i32 %inlo %hi16 = v4i16 trunc v4i32 %inhi %in16 = v8i16 concat_vectors v4i16 %lo16, v4i16 %hi16 %res = v8i8 trunc v8i16 %in16 This allows instruction selection to generate three VMOVN instructions instead of a sequences of moves, stores and loads. Update the ARMTargetTransformInfo to take this improved legalization into account. Consider the simplified IR: define <16 x i8> @test1(<16 x i32>* %ap) { %a = load <16 x i32>* %ap %tmp = trunc <16 x i32> %a to <16 x i8> ret <16 x i8> %tmp } define <8 x i8> @test2(<8 x i32>* %ap) { %a = load <8 x i32>* %ap %tmp = trunc <8 x i32> %a to <8 x i8> ret <8 x i8> %tmp } Previously, we would generate the truly hideous: .syntax unified .section __TEXT,__text,regular,pure_instructions .globl _test1 .align 2 _test1: @ @test1 @ BB#0: push {r7} mov r7, sp sub sp, sp, #20 bic sp, sp, #7 add r1, r0, #48 add r2, r0, #32 vld1.64 {d24, d25}, [r0:128] vld1.64 {d16, d17}, [r1:128] vld1.64 {d18, d19}, [r2:128] add r1, r0, #16 vmovn.i32 d22, q8 vld1.64 {d16, d17}, [r1:128] vmovn.i32 d20, q9 vmovn.i32 d18, q12 vmov.u16 r0, d22[3] strb r0, [sp, #15] vmov.u16 r0, d22[2] strb r0, [sp, #14] vmov.u16 r0, d22[1] strb r0, [sp, #13] vmov.u16 r0, d22[0] vmovn.i32 d16, q8 strb r0, [sp, #12] vmov.u16 r0, d20[3] strb r0, [sp, #11] vmov.u16 r0, d20[2] strb r0, [sp, #10] vmov.u16 r0, d20[1] strb r0, [sp, #9] vmov.u16 r0, d20[0] strb r0, [sp, #8] vmov.u16 r0, d18[3] strb r0, [sp, #3] vmov.u16 r0, d18[2] strb r0, [sp, #2] vmov.u16 r0, d18[1] strb r0, [sp, #1] vmov.u16 r0, d18[0] strb r0, [sp] vmov.u16 r0, d16[3] strb r0, [sp, #7] vmov.u16 r0, d16[2] strb r0, [sp, #6] vmov.u16 r0, d16[1] strb r0, [sp, #5] vmov.u16 r0, d16[0] strb r0, [sp, #4] vldmia sp, {d16, d17} vmov r0, r1, d16 vmov r2, r3, d17 mov sp, r7 pop {r7} bx lr .globl _test2 .align 2 _test2: @ @test2 @ BB#0: push {r7} mov r7, sp sub sp, sp, #12 bic sp, sp, #7 vld1.64 {d16, d17}, [r0:128] add r0, r0, #16 vld1.64 {d20, d21}, [r0:128] vmovn.i32 d18, q8 vmov.u16 r0, d18[3] vmovn.i32 d16, q10 strb r0, [sp, #3] vmov.u16 r0, d18[2] strb r0, [sp, #2] vmov.u16 r0, d18[1] strb r0, [sp, #1] vmov.u16 r0, d18[0] strb r0, [sp] vmov.u16 r0, d16[3] strb r0, [sp, #7] vmov.u16 r0, d16[2] strb r0, [sp, #6] vmov.u16 r0, d16[1] strb r0, [sp, #5] vmov.u16 r0, d16[0] strb r0, [sp, #4] ldm sp, {r0, r1} mov sp, r7 pop {r7} bx lr Now, however, we generate the much more straightforward: .syntax unified .section __TEXT,__text,regular,pure_instructions .globl _test1 .align 2 _test1: @ @test1 @ BB#0: add r1, r0, #48 add r2, r0, #32 vld1.64 {d20, d21}, [r0:128] vld1.64 {d16, d17}, [r1:128] add r1, r0, #16 vld1.64 {d18, d19}, [r2:128] vld1.64 {d22, d23}, [r1:128] vmovn.i32 d17, q8 vmovn.i32 d16, q9 vmovn.i32 d18, q10 vmovn.i32 d19, q11 vmovn.i16 d17, q8 vmovn.i16 d16, q9 vmov r0, r1, d16 vmov r2, r3, d17 bx lr .globl _test2 .align 2 _test2: @ @test2 @ BB#0: vld1.64 {d16, d17}, [r0:128] add r0, r0, #16 vld1.64 {d18, d19}, [r0:128] vmovn.i32 d16, q8 vmovn.i32 d17, q9 vmovn.i16 d16, q8 vmov r0, r1, d16 bx lr llvm-svn: 179989 | ||||
| * | ARM: Split out cost model vcvt testcases. | Jim Grosbach | 2013-04-21 | 2 | -172/+171 |
| | | | | | | | They had a separate RUN line already, so may as well be in a separate file. llvm-svn: 179988 | ||||
| * | Passing arguments to varags functions under the SPARC v9 ABI. | Jakob Stoklund Olesen | 2013-04-21 | 2 | -0/+60 |
| | | | | | | | | Arguments after the fixed arguments never use the floating point registers. llvm-svn: 179987 | ||||
| * | Tidy up comment grammar. | Jim Grosbach | 2013-04-21 | 1 | -2/+2 |
| | | | | | llvm-svn: 179986 | ||||
| * | Fix the SETHIimm pattern for 64-bit code. | Jakob Stoklund Olesen | 2013-04-21 | 2 | -2/+7 |
| | | | | | | | Don't ignore the high 32 bits of the immediate. llvm-svn: 179985 | ||||
| * | Fix return type of isBitfield in the binding definition | Dmitri Gribenko | 2013-04-21 | 1 | -1/+1 |
| | | | | | | | Patch by Loïc Jaquemet. llvm-svn: 179984 | ||||
| * | Remove unused, undefined ArgFlagsTy::getArgFlagsString; add a comment about ↵ | Stephen Lin | 2013-04-21 | 1 | -5/+2 |
| | | | | | | | 'returned' llvm-svn: 179983 | ||||
| * | SROA: Don't crash on a select with two identical operands. | Benjamin Kramer | 2013-04-21 | 2 | -8/+19 |
| | | | | | | | | This is an edge case that can happen if we modify a chain of multiple selects. Update all operands in that case and remove the assert. PR15805. llvm-svn: 179982 | ||||

