summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Print all the moves at a given label instead of just the first one.Rafael Espindola2011-04-263-15/+6
| | | | | | Remove previous DwarfCFI hack. llvm-svn: 130187
* Rename everything to follow LLVM style ... I think.Nick Lewycky2011-04-263-212/+329
| | | | | | | | | | | | | | Add support for switch and indirectbr edges. This works by densely numbering all blocks which have such terminators, and then separately numbering the possible successors. The predecessors write down a number, the successor knows its own number (as a ConstantInt) and sends that and the pointer to the number the predecessor wrote down to the runtime, who looks up the counter in a per-function table. Coverage data should now be functional, but I haven't tested it on anything other than my 2-file synthetic test program for coverage. llvm-svn: 130186
* No relocation produces a SLEB or ULEB, make sure they are handled in MC.Rafael Espindola2011-04-262-11/+15
| | | | llvm-svn: 130181
* Enhance MemDep: When alias analysis returns a partial alias result,Chris Lattner2011-04-264-29/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | return it as a clobber. This allows GVN to do smart things. Enhance GVN to be smart about the case when a small load is clobbered by a larger overlapping load. In this case, forward the value. This allows us to compile stuff like this: int test(void *P) { int tmp = *(unsigned int*)P; return tmp+*((unsigned char*)P+1); } into: _test: ## @test movl (%rdi), %ecx movzbl %ch, %eax addl %ecx, %eax ret which has one load. We already handled the case where the smaller load was from a must-aliased base pointer. llvm-svn: 130180
* Let dwarf writer allocate extra space in the debug location expression. This ↵Devang Patel2011-04-264-9/+14
| | | | | | space, if requested, will be used for complex addresses of the Blocks' variables. llvm-svn: 130178
* Rename a local variable.Devang Patel2011-04-251-17/+21
| | | | llvm-svn: 130171
* Rename a method to match what it really does.Devang Patel2011-04-253-8/+10
| | | | | | s/addVariableAddress/addFrameVariableAddress/g llvm-svn: 130170
* Do not drop a variable's complex address if it is not based on frame base.Devang Patel2011-04-251-1/+5
| | | | | | Observed this while reading code, so I do not have a test case handy here. llvm-svn: 130167
* Fix an iterator invalidation bug.Dan Gohman2011-04-251-9/+16
| | | | llvm-svn: 130166
* Make this test disable fast isel as it's not needed.Eric Christopher2011-04-251-1/+1
| | | | llvm-svn: 130165
* mark a large static table static. Pointed out by Michael Ilseman!Chris Lattner2011-04-251-1/+1
| | | | llvm-svn: 130160
* Improve adherence to general style, use "foo_t &x" instead of "foo_t& x"Chris Lattner2011-04-251-21/+21
| | | | llvm-svn: 130153
* allow adding a FoldingSetNodeID to a FastFoldingSetNode, resolving PR9499,Chris Lattner2011-04-252-2/+10
| | | | | | patch by Johannes Schaub! llvm-svn: 130151
* add a missed bitfield instcombine.Chris Lattner2011-04-251-0/+47
| | | | llvm-svn: 130137
* Lower BlockAddress node when relocation-model is static.Akira Hatanaka2011-04-253-21/+33
| | | | llvm-svn: 130131
* A dbg.declare may not be in entry block, even if it is referring to an ↵Devang Patel2011-04-252-4/+123
| | | | | | incoming argument. However, It is appropriate to emit DBG_VALUE referring to this incoming argument in entry block in MachineFunction. llvm-svn: 130129
* Make tests more useful.Benjamin Kramer2011-04-258-12/+12
| | | | | | lit needs a linter ... llvm-svn: 130126
* Remove some hard coded CR-LFs. Some of these were the entire files, one ofChandler Carruth2011-04-257-499/+499
| | | | | | | these was just one line of a file. Explicitly set the eol-style property on the files to try and ensure this fix stays. llvm-svn: 130125
* Fix comment typo. Noticed by Liu.Duncan Sands2011-04-251-1/+1
| | | | llvm-svn: 130120
* Simplify the logic. Noticed by aKor.Rafael Espindola2011-04-241-2/+1
| | | | llvm-svn: 130116
* Synchronize the conditions for producing a .cfi_startproc and a .cfi_endproc.Rafael Espindola2011-04-241-1/+1
| | | | | | Fixes PR9787. llvm-svn: 130115
* Fix Target/ARM/Thumb1FrameLowering.h header guard.Sebastian Redl2011-04-241-1/+1
| | | | llvm-svn: 130097
* Give MC/MCDisassembler/Disassembler.h a header guard.Sebastian Redl2011-04-241-0/+6
| | | | llvm-svn: 130096
* Give SplitKit.h a header guard.Sebastian Redl2011-04-241-0/+5
| | | | llvm-svn: 130095
* Give ImmutableIntervalMap.h an include guard.Sebastian Redl2011-04-241-0/+6
| | | | llvm-svn: 130094
* Fix an assert to check exactly what it says.Jay Foad2011-04-241-1/+1
| | | | llvm-svn: 130093
* Add a TODO.Mikhail Glushenkov2011-04-241-0/+2
| | | | llvm-svn: 130092
* Regenerate.Mikhail Glushenkov2011-04-242-475/+405
| | | | llvm-svn: 130091
* Remove all references to plugins from the LLVMC docs.Mikhail Glushenkov2011-04-242-315/+218
| | | | llvm-svn: 130090
* PR9214: Convert the DIBuilder API to use ArrayRef.Jay Foad2011-04-242-13/+11
| | | | llvm-svn: 130086
* Remove unused STL header includes.Jay Foad2011-04-2337-44/+0
| | | | llvm-svn: 130068
* Like the coding standards say, do not use "using namespace std".Jay Foad2011-04-231-1/+0
| | | | llvm-svn: 130054
* Silence an overzealous uninitialized variable warning from GCC.Benjamin Kramer2011-04-231-1/+1
| | | | llvm-svn: 130053
* Accidental function name mangling.Andrew Trick2011-04-231-1/+1
| | | | llvm-svn: 130050
* Thumb2 and ARM add/subtract with carry fixes.Andrew Trick2011-04-238-123/+147
| | | | | | | | | | | | | Fixes Thumb2 ADCS and SBCS lowering: <rdar://problem/9275821>. t2ADCS/t2SBCS are now pseudo instructions, consistent with ARM, so the assembly printer correctly prints the 's' suffix. Fixes Thumb2 adde -> SBC matching to check for live/dead carry flags. Fixes the internal ARM machine opcode mnemonic for ADCS/SBCS. Fixes ARM SBC lowering to check for live carry (potential bug). llvm-svn: 130048
* Comment edit.Andrew Trick2011-04-231-1/+2
| | | | llvm-svn: 130047
* whitespaceAndrew Trick2011-04-232-8/+8
| | | | llvm-svn: 130046
* docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.NAKAMURA Takumi2011-04-2352-1569/+1632
| | | | | | | | | | | | | | | | | <h2>Section Example</h2> <div> <!-- h2+div is applied --> <p>Section preamble.</p> <h3>Subsection Example</h3> <p> <!-- h3+p is applied --> Subsection body </p> <!-- End of section body --> </div> FIXME: Care H5 better. llvm-svn: 130040
* test/CodeGen/X86/shrink-compare.ll: Relax expressions for Win64.NAKAMURA Takumi2011-04-231-2/+2
| | | | llvm-svn: 130039
* Teach FastISel to deal with instructions that have two immediate operands.Owen Anderson2011-04-222-11/+33
| | | | llvm-svn: 130033
* Let front-end tie subprogram declaration with subprogram definition directly.Devang Patel2011-04-225-48/+67
| | | | llvm-svn: 130028
* Fix comment.Eric Christopher2011-04-221-3/+3
| | | | llvm-svn: 130027
* Always compare the cost of region splitting with the cost of per-block ↵Jakob Stoklund Olesen2011-04-221-6/+45
| | | | | | | | splitting. Sometimes it is better to split per block, and we missed those cases. llvm-svn: 130025
* The .inc file is auto-generated and must not be edited by hand.Mikhail Glushenkov2011-04-221-1/+1
| | | | llvm-svn: 130021
* Recommit the fix for rdar://9289512 with a couple tweaks toChris Lattner2011-04-224-18/+113
| | | | | | | | | | | fix bugs exposed by the gcc dejagnu testsuite: 1. The load may actually be used by a dead instruction, which would cause an assert. 2. The load may not be used by the current chain of instructions, and we could move it past a side-effecting instruction. Change how we process uses to define the problem away. llvm-svn: 130018
* Disassembly of A8.6.59 LDR (literal) Encoding T1 (16-bit thumb instruction) ↵Johnny Chen2011-04-224-3/+24
| | | | | | | | | | should print out ldr, not ldr.n. rdar://problem/9267772 llvm-svn: 130008
* DAGCombine: fold "(zext x) == C" into "x == (trunc C)" if the trunc is lossless.Benjamin Kramer2011-04-223-30/+73
| | | | | | | | | | | | On x86 this allows to fold a load into the cmp, greatly reducing register pressure. movzbl (%rdi), %eax cmpl $47, %eax -> cmpb $47, (%rdi) This shaves 8k off gcc.o on i386. I'll leave applying the patch in README.txt to Chris :) llvm-svn: 130005
* Do not leak argument's DbgVariables.Devang Patel2011-04-221-1/+1
| | | | llvm-svn: 130004
* Add asserts.Devang Patel2011-04-221-0/+2
| | | | llvm-svn: 129995
* X86: Try to use a smaller encoding by transforming (X << C1) & C2 into (X & ↵Benjamin Kramer2011-04-222-0/+176
| | | | | | | | | | | | | | | | | | | | | | | (C2 >> C1)) & C1. (Part of PR5039) This tends to happen a lot with bitfield code generated by clang. A simple example for x86_64 is uint64_t foo(uint64_t x) { return (x&1) << 42; } which used to compile into bloated code: shlq $42, %rdi ## encoding: [0x48,0xc1,0xe7,0x2a] movabsq $4398046511104, %rax ## encoding: [0x48,0xb8,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00] andq %rdi, %rax ## encoding: [0x48,0x21,0xf8] ret ## encoding: [0xc3] with this patch we can fold the immediate into the and: andq $1, %rdi ## encoding: [0x48,0x83,0xe7,0x01] movq %rdi, %rax ## encoding: [0x48,0x89,0xf8] shlq $42, %rax ## encoding: [0x48,0xc1,0xe0,0x2a] ret ## encoding: [0xc3] It's possible to save another byte by using 'andl' instead of 'andq' but I currently see no way of doing that without making this code even more complicated. See the TODOs in the code. llvm-svn: 129990
OpenPOWER on IntegriCloud