summaryrefslogtreecommitdiff
path: root/lib
Commit message (Collapse)AuthorAge
* Revert r196270, "Generalize debug info / EH emission in AsmPrinter"NAKAMURA Takumi2013-12-03
| | | | | | It broke CodeGen/R600 tests with +Asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196272 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize debug info / EH emission in AsmPrinterTimur Iskhodzhanov2013-12-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196270 91177308-0d34-0410-b5e6-96231b3b80d8
* Addrspacecasts are no-ops on ARM.James Molloy2013-12-03
| | | | | | | | Testcase added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196269 91177308-0d34-0410-b5e6-96231b3b80d8
* [SystemZ] Fix choice of known-zero mask in insertion optimizationRichard Sandiford2013-12-03
| | | | | | | | | | | | | | | The backend converts 64-bit ORs into subreg moves if the upper 32 bits of one operand and the low 32 bits of the other are known to be zero. It then tries to peel away redundant ANDs from the upper 32 bits. Since AND masks are canonicalized to exclude known-zero bits, the test ORs the mask and the known-zero bits together before checking for redundancy. The problem was that it was using the wrong node when checking for known-zero bits, so could drop ANDs that were still needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196267 91177308-0d34-0410-b5e6-96231b3b80d8
* Enhance the fix of PR17631Michael Liao2013-12-03
| | | | | | | | | | | | | | | | - The fix to PR17631 fixes part of the cases where 'vzeroupper' should not be issued before 'call' insn. There're other cases where helper calls will be inserted not limited to epilog. These helper calls do not follow the standard calling convention and won't clobber any YMM registers. (So far, all call conventions will clobber any or part of YMM registers.) This patch enhances the previous fix to cover more cases 'vzerosupper' should not be inserted by checking if that function call won't clobber any YMM registers and skipping it if so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196261 91177308-0d34-0410-b5e6-96231b3b80d8
* [AArch64]Add missing floating point convert, round and misc intrinsics.Hao Liu2013-12-03
| | | | | | | E.g. int64x1_t vcvt_s64_f64(float64x1_t a) -> FCVTZS Dd, Dn git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196210 91177308-0d34-0410-b5e6-96231b3b80d8
* AArch64: add missing ACLE intrinsics mapping to general arithmetic operation ↵Hao Liu2013-12-03
| | | | | | | | | from VFP instructions. E.g. float64x1_t vadd_f64(float64x1_t a, float64x1_t b) -> FADD Dd, Dn, Dm. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196208 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace.NAKAMURA Takumi2013-12-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196203 91177308-0d34-0410-b5e6-96231b3b80d8
* AArch64: Add missing scalar pair intrinsics.Hao Liu2013-12-03
| | | | | | | E.g. "float32_t vaddv_f32(float32x2_t a)" to be matched into "faddp s0, v1.2s". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196198 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-cov: Cleaned up print() function slightly.Yuchen Wu2013-12-03
| | | | | | Changed while to for loop. Removed unnecessary if statement. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196194 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some missing pattern matches for AArch64 Neon intrinsics like vuqadd_s64 ↵Jiangning Liu2013-12-03
| | | | | | and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196192 91177308-0d34-0410-b5e6-96231b3b80d8
* Add some missing pattern matches for AArch64 Neon intrinsics like ↵Jiangning Liu2013-12-03
| | | | | | vmull_high_n_s16 and friends. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196190 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't set PrivateGlobalPrefix for NVPTX and R600.Rafael Espindola2013-12-03
| | | | | | These targets have special asm printers that don't use these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196187 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-cov: Removed output to STDOUT/specified file.Yuchen Wu2013-12-03
| | | | | | | | | | | | Instead of asking the user to specify a single file to output coverage info and defaulting to STDOUT, llvm-cov now creates files for each source file with a naming system of: <source filename> + ".llcov". This is what gcov does and although it can clutter the working directory with numerous coverage files, it will be easier to hook the llvm-cov output to tools which operate on this assumption (such as lcov). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196184 91177308-0d34-0410-b5e6-96231b3b80d8
* Added MachineBlockFrequencyInfo::view for displaying the block frequency ↵Michael Gottesman2013-12-03
| | | | | | | | | | | | propagation graph via graphviz. This is useful for debugging issues in the BlockFrequency implementation since one can easily visualize where probability mass and other errors occur in the propagation. This is the MI version of r194654. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196183 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor the handling of lexical block and inline scope rangesEric Christopher2013-12-03
| | | | | | into a single function. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196181 91177308-0d34-0410-b5e6-96231b3b80d8
* Update doxygen tags.Eric Christopher2013-12-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196180 91177308-0d34-0410-b5e6-96231b3b80d8
* Reorder member function declarations to match source order.Eric Christopher2013-12-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196179 91177308-0d34-0410-b5e6-96231b3b80d8
* Make ranges and range lists be a discrete entity that can be locatedEric Christopher2013-12-03
| | | | | | | and emitted per function and CU. Begins coalescing ranges as a first class entity through debug info. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196178 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-cov: Store blocks rather than counts per line.Yuchen Wu2013-12-03
| | | | | | | | | Each line stores all the blocks that execute on that line, instead of only storing the line counts previously accumulated. This provides more information for each line, and will be useful for options in enabling block and branch information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196177 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-cov: Added edge struct for traversal in block.Yuchen Wu2013-12-03
| | | | | | | | | | | | | Added GCOVEdge which are simple structs owned by the GCOVFunction that stores the source and destination GCOVBlocks, as well as the counts. Changed GCOVBlocks so that it stores a vector of source GCOVEdges and a vector of destination GCOVEdges, rather than just the block number. Storing the block number was only useful for knowing the number of edges and for debug info. Using a struct is useful for traversing the edges, especially back edges which may be needed later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196175 91177308-0d34-0410-b5e6-96231b3b80d8
* llvm-cov: Split up reading of GCNO and GCDA files.Yuchen Wu2013-12-03
| | | | | | There are now two functions: readGCNO() and readGCDA(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196173 91177308-0d34-0410-b5e6-96231b3b80d8
* Debug Info: rename getDebugInfoVersionFromModule to ↵Manman Ren2013-12-03
| | | | | | | | | getDebugMetadataVersionFromModule. Suggested by Eric. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196172 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove PPCScoreboardHazardRecognizerHal Finkel2013-12-02
| | | | | | | | | | PPCScoreboardHazardRecognizer was a subclass of ScoreboardHazardRecognizer which did only one thing: filtered out nodes in EmitInstruction for which DAG->getInstrDesc(SU) returned NULL. This used to be the case for PPC pseudo instructions. As far as I can tell, this is no longer true, and so we can use ScoreboardHazardRecognizer directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196171 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor the setting of PrivateGlobalPrefix.Rafael Espindola2013-12-02
| | | | | | No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196170 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't set PrivateGlobalPrefix twice in the same function.Rafael Espindola2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196169 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert two char* that are only ever used as booleans to bool.Rafael Espindola2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196168 91177308-0d34-0410-b5e6-96231b3b80d8
* Use local variable for repeated use rather than 'get' method. No functional ↵Kay Tiong Khoo2013-12-02
| | | | | | change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196164 91177308-0d34-0410-b5e6-96231b3b80d8
* Move variables to where they are used and give them better names. No ↵Kay Tiong Khoo2013-12-02
| | | | | | functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196163 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename variables to be consistent (CST -> Cst). No functional change intended.Kay Tiong Khoo2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196161 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary/commented-out header inclusion.David Blaikie2013-12-02
| | | | | | Review feedback from Eric Christopher on r196140 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196160 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Rename generic unit references to "TheU" instead of TheCU now ↵David Blaikie2013-12-02
| | | | | | | | that they might be type units instead of compile units. CR feedback from Eric Christopher on r196139. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196159 91177308-0d34-0410-b5e6-96231b3b80d8
* Debug Info: drop debug info via upgrading path if version number does not match.Manman Ren2013-12-02
| | | | | | | | | | | | | | | Add a helper function getDebugInfoVersionFromModule to return the debug info version number for a module. "Verifier/module-flags-1.ll" checks for verification errors. It will seg fault when calling getDebugInfoVersionFromModule because of the incorrect format for module flags in the testing case. We make getModuleFlagsMetadata more robust by checking for error conditions. PR17982 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196158 91177308-0d34-0410-b5e6-96231b3b80d8
* [AArch64] Implemented vcopy_lane patterns using scalar DUP instruction.Chad Rosier2013-12-02
| | | | | | Patch by Ana Pazos! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196151 91177308-0d34-0410-b5e6-96231b3b80d8
* InlineFunction.cpp: Remove a return value that is always falseMark Seaborn2013-12-02
| | | | | | | | Remove some associated dead code. This cleanup is associated with PR17872. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196147 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Rename DwarfCompileUnit.* to DwarfUnit.* to match their contents.David Blaikie2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196140 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Refactor CompileUnit into a Unit baseclass and ↵David Blaikie2013-12-02
| | | | | | | | | | CompileUnit/TypeUnit derived classes. Header/cpp file rename to follow immediately - just splitting out the commits for ease of review/reading to demonstrate that the renaming changes are entirely mechanical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196139 91177308-0d34-0410-b5e6-96231b3b80d8
* DebugInfo: Type Units: Propagate the correct DW_AT_language into type units.David Blaikie2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196130 91177308-0d34-0410-b5e6-96231b3b80d8
* Conservative fix for PR17827 - don't optimize a shift + and + compare ↵Kay Tiong Khoo2013-12-02
| | | | | | sequence where the shift is logical unless the comparison is unsigned git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196129 91177308-0d34-0410-b5e6-96231b3b80d8
* R600: Workaround for cayman loop bugVincent Lejeune2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196121 91177308-0d34-0410-b5e6-96231b3b80d8
* Move getSymbolWithGlobalValueBase to TargetLoweringObjectFile.Rafael Espindola2013-12-02
| | | | | | This allows it to be used in TargetLoweringObjectFileImpl.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196117 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce poor man's consumeToken() in X86AsmParserAlp Toker2013-12-02
| | | | | | | | This makes the code a little more idiomatic. No change in behaviour. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196113 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Rafael Espindola2013-12-02
| | | | | | | | | MO_JumpTableIndex and MO_ExternalSymbol don't show up on inline asm. Keeping parts of the old asm printer just to print inline asm to a string that we then parse back looks like a hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196111 91177308-0d34-0410-b5e6-96231b3b80d8
* Output .eh_frames on COFF too now that the integrated as is used on mingw.Rafael Espindola2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196104 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM: decide whether to use movw/movt based on "minsize" attribute.Tim Northover2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196102 91177308-0d34-0410-b5e6-96231b3b80d8
* XCoreFrameLowering.cpp: Use [in,out] instead of [in] [out]. [-Wdocumentation]NAKAMURA Takumi2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196094 91177308-0d34-0410-b5e6-96231b3b80d8
* XCore target: Make handling of large frames not dependent upon an FP.Robert Lytton2013-12-02
| | | | | | | | | | | | eliminateFrameIndex() has been reworked to handle both small & large frames with either a FP or SP. An additional Slot is required for Scavenging spills when not using FP for large frames. Reworked the handling of Register Scavenging. Whether we are using an FP or not, whether it is a large frame or not, and whether we are using a large code model or not are now independent. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196091 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM: add pseudo-instructions for lit-pool global materialisationTim Northover2013-12-02
| | | | | | | | | | | | These are used by MachO only at the moment, and (much like the existing MOVW/MOVT set) work around the fact that the labels used in the actual instructions often contain PC-dependent components, which means that repeatedly materialising the same global can't be CSEed. With small modifications, it could be adapted to how ELF finds the address of _GLOBAL_OFFSET_TABLE_, which would give similar benefits in PIC mode there. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196090 91177308-0d34-0410-b5e6-96231b3b80d8
* XCore: Unbreak C++11 build.Benjamin Kramer2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196089 91177308-0d34-0410-b5e6-96231b3b80d8
* XCore target: fix large code model 'select' indirect address handling.Robert Lytton2013-12-02
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196088 91177308-0d34-0410-b5e6-96231b3b80d8