aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib
AgeCommit message (Collapse)AuthorFilesLines
2011-09-15Use a more efficient lowering for Unordered/Monotonic atomic load/store on ↵Eli Friedman2-2/+43
Thumb1. llvm-svn: 139865
2011-09-15Add the remaining AVX versions of instructions to X86InstrInfo, thisBruno Cardoso Lopes1-4/+33
time for describing high latency ones and for recognizting loads from the same base pointer llvm-svn: 139864
2011-09-15DWARF: Reset the state after parsing a line table prologue and remove an ↵Benjamin Kramer3-5/+5
unnecessary lookup. llvm-svn: 139859
2011-09-15Factor out partial register update checks for some SSE instructions.Bruno Cardoso Lopes1-32/+53
Also add the AVX versions and add comments! llvm-svn: 139854
2011-09-15Some legalization fixes for atomic load and store.Eli Friedman3-1/+29
llvm-svn: 139851
2011-09-15CommandLine: Add support for 64 bit unsigned integer options.Benjamin Kramer1-0/+13
llvm-svn: 139848
2011-09-15DWARF: Don't crash when looking up an invalid address.Benjamin Kramer1-0/+6
llvm-svn: 139846
2011-09-15Add an option to disable spill hoisting.Jakob Stoklund Olesen1-1/+5
When -split-spill-mode is enabled, spill hoisting is performed by SplitKit instead of by InlineSpiller. This hidden command line option is for testing the splitter spill mode. llvm-svn: 139845
2011-09-15Thumb2 assembly parsing and encoding for SASX.Jim Grosbach1-0/+2
llvm-svn: 139843
2011-09-15Reapply r139759. Disable IV rewriting by default. See PR10916.Andrew Trick1-1/+1
llvm-svn: 139842
2011-09-15Thumb2 assembly parsing and encoding for RSB.Jim Grosbach1-0/+13
llvm-svn: 139839
2011-09-15DWARF: Put all the pieces we have together and provide a single accessor to ↵Benjamin Kramer3-1/+57
DIContext that provides line information when given an address. llvm-svn: 139836
2011-09-15DWARF: Remove accessors that parse the whole line table section in one go, ↵Benjamin Kramer4-58/+39
this can't possibly work. The address size is specified by the compile unit associated with a line table, there is no global address size. llvm-svn: 139835
2011-09-15Thumb2 assembly parsing and encoding for REV16/REVSH.Jim Grosbach1-1/+3
llvm-svn: 139828
2011-09-15The the MC disassembler C API to print in verbose mode. Perhaps there ↵Owen Anderson2-1/+31
should be a parameter to request verbose mode? llvm-svn: 139821
2011-09-15Add support for stored annotations to MCInst, and provide facilities for ↵Owen Anderson5-3/+53
MC-based InstPrinters to print them out. Enhance the ARM and X86 InstPrinter's to do so in verbose mode. llvm-svn: 139820
2011-09-15VirtRegMap is counting spill slots, not register spills.Jakob Stoklund Olesen1-3/+3
Fix the stats counters to reflect that. llvm-svn: 139819
2011-09-15Change all checks regarding the presence of any SSE level to alwaysBruno Cardoso Lopes1-62/+75
take into consideration the presence of AVX. This change, together with the SSEDomainFix enabled for AVX, makes AVX codegen to always (hopefully) emit the same code as SSE for 128-bit vector ops. I don't have a testcase for this, but AVX now beats SSE in performance for 128-bit ops in the majority of programas in the llvm testsuite llvm-svn: 139817
2011-09-15Enable SSEDomainFix pass for AVX mode.Bruno Cardoso Lopes1-4/+7
llvm-svn: 139816
2011-09-15Count correctly when a COPY turns into a spill or reload.Jakob Stoklund Olesen1-1/+7
The number of spills could go negative since a folded COPY is just a spill, and it may be eliminated. llvm-svn: 139815
2011-09-15Thumb2 assembly parsing and encoding for REV.Jim Grosbach1-0/+2
llvm-svn: 139813
2011-09-15DWARF: Print line tables per compile unit, so they get the right address size.Benjamin Kramer3-5/+23
llvm-svn: 139808
2011-09-15Assmebler symbol attribute directives don't work on temporary symbols.Jim Grosbach1-1/+6
Assembler private local symbols aren't legal targets of symbol attributes, so issue a diagnostic for them. Based on patch by Stepan Dyatkovskiy. llvm-svn: 139807
2011-09-15Count inserted spills and reloads more accurately.Jakob Stoklund Olesen1-14/+22
Adjust counters when removing spill and reload instructions. We still don't account for reloads being removed by eliminateDeadDefs(). llvm-svn: 139806
2011-09-15DWARF: wire up .debug_str dumping.Benjamin Kramer4-17/+25
llvm-svn: 139799
2011-09-15Handle missing newline at EOF more gracefully in MC AsmLexer.Jim Grosbach1-1/+8
If we see an EOF w/o a preceding end-of-line, return an EndOfStatement token before returning the Eof token. Based on patch by Stepan Dyatkovskiy. llvm-svn: 139798
2011-09-15Trace through sibling PHIs in bulk.Jakob Stoklund Olesen1-23/+50
When traceSiblingValue() encounters a PHI-def value created by live range splitting, don't look at all the predecessor blocks. That can be very expensive in a complicated CFG. Instead, consider that all the non-PHI defs jointly dominate all the PHI-defs. Tracing directly to all the non-PHI defs is much faster that zipping around in the CFG when there are many PHIs with many predecessors. This significantly improves compile time for indirectbr interpreters. llvm-svn: 139797
2011-09-15ARM support the pre-UAL mnemonic 'qsubaddx' for 'qsax.'Jim Grosbach1-0/+3
llvm-svn: 139796
2011-09-15Thumb2 push/pop mnemonic recognition.Jim Grosbach1-0/+6
llvm-svn: 139794
2011-09-15Speed up LiveIntervals::shrinkToUse with some caching.Jakob Stoklund Olesen1-6/+8
Blocks with multiple PHI successors only need to go on the worklist once. Use a SmallPtrSet to track the live-out blocks that have already been handled. This is a lot faster than the two live range check we would otherwise do. Also stop recomputing hasPHIKill flags. Like RenumberValues(), it is conservatively correct to leave them in, and they are not used for anything important. llvm-svn: 139792
2011-09-15Revert r139782, "RemoveCopyByCommutingDef doesn't need hasPHIKill()."Jakob Stoklund Olesen1-8/+8
It does, after all. RemoveCopyByCommutingDef rewrites the uses of one particular value number in A. It doesn't know how to rewrite phi uses, so there can't be any. llvm-svn: 139787
2011-09-15DWARF: Make DIE printing more bulletproof.Benjamin Kramer1-5/+18
llvm-svn: 139786
2011-09-15Add some more DWARF extensions from:Nick Lewycky1-0/+32
1. http://gcc.gnu.org/wiki/TemplateParmsDwarf 2. ftp://ftp.software.ibm.com/software/os390/czos/dwarf/mips_extensions.pdf llvm-svn: 139784
2011-09-15Stop verifying hasPHIKill() flags.Jakob Stoklund Olesen1-11/+1
There is only one legitimate use remaining, in addIntervalsForSpills(). All other calls to hasPHIKill() are only used to update PHIKill flags. The addIntervalsForSpills() function is part of the old spilling framework, only used by linearscan. llvm-svn: 139783
2011-09-15RemoveCopyByCommutingDef doesn't need hasPHIKill().Jakob Stoklund Olesen1-8/+8
Instead, let HasOtherReachingDefs() test for defs in B that overlap any phi-defs in A as well. This test is slightly different, but almost identical. A perfectly precise test would only check those phi-defs in A that are reachable from AValNo. llvm-svn: 139782
2011-09-15It is safe to remat a value killed by phis.Jakob Stoklund Olesen1-3/+1
The source live range is recomputed using shrinkToUses() which does handle phis correctly. The hasPHIKill() condition was relevant in the old days when ReMaterializeTrivialDef() tried to recompute the live range itself. The shrinkToUses() function will mark the original def as dead when no more uses and phi kills remain. It is then removed by runOnMachineFunction(). llvm-svn: 139781
2011-09-15Leave hasPHIKill flags alone in LiveInterval::RenumberValues.Jakob Stoklund Olesen1-21/+0
It is conservatively correct to keep the hasPHIKill flags, even after deleting PHI-defs. The calculation can be very expensive after taildup has created a quadratic number of indirectbr edges in the CFG, and the hasPHIKill flag isn't used for anything after RenumberValues(). llvm-svn: 139780
2011-09-15Update Dwarf enums list for DWARF 4.Nick Lewycky1-0/+16
Note that DW_TAG_rvalue_reference_type is officially 0x42, not 0x41. llvm-svn: 139779
2011-09-15DWARF: Print the number for unknown abbrev fields.Benjamin Kramer1-5/+18
Thanks Nick! llvm-svn: 139778
2011-09-15DWARF: Fail gracefully when encountering unknown values in an abbrev.Benjamin Kramer1-4/+9
llvm-svn: 139777
2011-09-15Give structs with virtual methods a virtual destructor.Nick Lewycky2-0/+6
llvm-svn: 139776
2011-09-15DWARF: Silence GCC -Wsign-compare warning.Benjamin Kramer1-1/+1
llvm-svn: 139775
2011-09-15DWARF: Fix indentation.Benjamin Kramer2-82/+81
llvm-svn: 139774
2011-09-15DWARF: Include <algorithm> explicitly.Benjamin Kramer1-0/+1
llvm-svn: 139773
2011-09-15DWARF: Add basic support for line tables.Benjamin Kramer5-0/+707
The llvm-dwarfdump output isn't very verbose yet. llvm-svn: 139771
2011-09-15Make demanded-elt simplification for shufflevector slightly stronger. ↵Eli Friedman1-0/+3
Spotted by inspection. llvm-svn: 139768
2011-09-15[regcoalescing] bug fix for RegistersDefinedFromSameValue.Andrew Trick1-2/+5
An improper SlotIndex->VNInfo lookup was leading to unsafe copy removal. Fixes PR10920 401.bzip2 miscompile with no IV rewrite. llvm-svn: 139765
2011-09-14Fix the code creating VZEXT_LOAD so that it creates the right memoperand. ↵Eli Friedman1-3/+6
Issue spotted in -debug output. I can't think of any practical effects at the moment, but it might matter if we start doing more aggressive alias analysis in CodeGen. llvm-svn: 139758
2011-09-14Update the comment for system_temp_directory() to indicate when itDouglas Gregor1-1/+1
will ignore the erasedOnReboot option, and properly escape the backslash in "C:\TEMP". Thanks to Aaron and Francois. llvm-svn: 139755
2011-09-14Thumb2 assembly parsing and encoding for PKH.Jim Grosbach1-4/+14
llvm-svn: 139754