summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Whitespace.NAKAMURA Takumi2013-11-201-22/+22
| | | | llvm-svn: 195237
* Fixed compilation error.Elena Demikhovsky2013-11-201-3/+3
| | | | llvm-svn: 195230
* AVX-512: Concat 4 128-bit vectors in one 512-bit vector.Elena Demikhovsky2013-11-201-2/+15
| | | | llvm-svn: 195229
* [PM] Make the function pass manager more regular.Chandler Carruth2013-11-201-8/+7
| | | | | | | | | | | | | | | | The FunctionPassManager is now itself a function pass. When run over a function, it runs all N of its passes over that function. This is the 1:N mapping in the pass dimension only. This allows it to be used in either a ModulePassManager or potentially some other manager that works on IR units which are supersets of Functions. This commit also adds the obvious adaptor to map from a module pass to a function pass, running the function pass across every function in the module. The test has been updated to use this new pattern. llvm-svn: 195192
* llvm-cov: Added file checksum to gcno and gcda files.Yuchen Wu2013-11-202-40/+89
| | | | | | | | | | | | Instead of permanently outputting "MVLL" as the file checksum, clang will create gcno and gcda checksums by hashing the destination block numbers of every arc. This allows for llvm-cov to check if the two gcov files are synchronized. Regenerated the test files so they contain the checksum. Also added negative test to ensure error when the checksums don't match. llvm-svn: 195191
* [PM] Split the analysis manager into a function-specific interface andChandler Carruth2013-11-201-85/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a module-specific interface. This is the first of many steps necessary to generalize the infrastructure such that we can support both a Module-to-Function and Module-to-SCC-to-Function pass manager nestings. After a *lot* of attempts that never worked and didn't even make it to a committable state, it became clear that I had gotten the layering design of analyses flat out wrong. Four days later, I think I have most of the plan for how to correct this, and I'm starting to reshape the code into it. This is just a baby step I'm afraid, but starts separating the fundamentally distinct concepts of function analysis passes and module analysis passes so that in subsequent steps we can effectively layer them, and have a consistent design for the eventual SCC layer. As part of this, I've started some interface changes to make passes more regular. The module pass accepts the module in the run method, and some of the constructor parameters are gone. I'm still working out exactly where constructor parameters vs. method parameters will be used, so I expect this to fluctuate a bit. This actually makes the invalidation less "correct" at this phase, because now function passes don't invalidate module analysis passes, but that was actually somewhat of a misfeature. It will return in a better factored form which can scale to other units of IR. The documentation has gotten less verbose and helpful. llvm-svn: 195189
* PPC: Optimize rldicl generation for masked shiftsHal Finkel2013-11-201-1/+15
| | | | | | | | | | | | | | Masking operations (where only some number of the low bits are being kept) are selected to rldicl(x, 0, mb). If x is a logical right shift (which would become rldicl(y, 64-n, n)), we might be able to fold the two instructions together: rldicl(rldicl(x, 64-n, n), 0, mb) -> rldicl(x, 64-n, mb) for n <= mb The right shift is really a left rotate followed by a mask, and if the explicit mask is a more-restrictive sub-mask of the mask implied by the shift, only one rldicl is needed. llvm-svn: 195185
* Remove polymorphic destruction for DIE. DIEBlocks are owned elsewhereEric Christopher2013-11-201-1/+1
| | | | | | | and not polymorphically deleted and they are the only thing that derive from DIE. llvm-svn: 195183
* Remove capability for polymorphic destruction from LexicalScopeEric Christopher2013-11-202-7/+5
| | | | | | and LexicalScopes, we're not using it. llvm-svn: 195182
* Grammar.Eric Christopher2013-11-201-1/+1
| | | | llvm-svn: 195181
* Formatting, 80-col, trailing whitespace.Eric Christopher2013-11-201-37/+36
| | | | llvm-svn: 195180
* long line correctionJack Carter2013-11-201-1/+2
| | | | llvm-svn: 195179
* long line correctionJack Carter2013-11-201-4/+8
| | | | llvm-svn: 195175
* Expose the fence instruction via the C API.Filip Pizlo2013-11-201-15/+24
| | | | llvm-svn: 195173
* Fixed an extra for(typo) in the commentsAditya Nandakumar2013-11-191-1/+1
| | | | llvm-svn: 195171
* long lines and white space correctionJack Carter2013-11-191-29/+34
| | | | llvm-svn: 195170
* DebugInfo: Partial implementation of DWARF type units.David Blaikie2013-11-197-41/+133
| | | | | | | | | | | | | | Emit DW_TAG_type_units into the debug_info section using compile unit headers. This is bogus/unusable by debuggers, but testable and provides more isolated review. Subsequent patches will include support for type unit headers and emission into the debug_types section, as well as comdat grouping the types based on their hash. Also the CompileUnit type will be renamed 'Unit' and relevant portions pulled out into respective CompileUnit and TypeUnit types. llvm-svn: 195166
* DebugInfo: Constify accelerator table handling, and separate type ↵David Blaikie2013-11-195-54/+68
| | | | | | accelarator insertion in preparation for a second use of this code from type units. llvm-svn: 195164
* SLPVectorizer: Fix stale for Value pointer arrayArnold Schwaighofer2013-11-191-0/+30
| | | | | | | | | | | | | | | We are slicing an array of Value pointers and process those slices in a loop. The problem is that we might invalidate a later slice by vectorizing a former slice. Use a WeakVH to track the pointer. If the pointer is deleted or RAUW'ed we can tell. The test case will only fail when running with libgmalloc. radar://15498655 llvm-svn: 195162
* SLPVectorizer: Fix whitespace errorsArnold Schwaighofer2013-11-191-11/+12
| | | | llvm-svn: 195161
* [mips] Resolve relocation for the stubs in MCJIT when load address is knownPetar Jovanovic2013-11-191-5/+4
| | | | | | | | | | Instead of processing relocation for branch to stubs right away, emit a modified relocation and add it to queue to be resolved later when final load address is known. This resolves seven MIPS MCJIT issues that were caused by missing relocation fixups at the end. llvm-svn: 195157
* [DAG] Refactor vector splitting code in SelectionDAG. No functional change ↵Juergen Ributzka2013-11-196-114/+75
| | | | | | | | intended. Reviewed by Tom llvm-svn: 195156
* Make it explicit that nulls are not allowed in names.Rafael Espindola2013-11-192-0/+6
| | | | | | | | | | The object files we support use null terminated strings, so there is no way to support these. This patch adds an assert to catch bad API use and an error check in the .ll parser. llvm-svn: 195155
* llvm-cov: Moved printing after error checks.Yuchen Wu2013-11-191-6/+8
| | | | llvm-svn: 195153
* reverts 195057 per requestJack Carter2013-11-195-9/+70
| | | | llvm-svn: 195152
* llvm-cov: Added constness property to methods.Yuchen Wu2013-11-191-14/+15
| | | | | | | Added constness to methods that shouldn't modify objects. Replaced operator[] lookup in maps with find() instead. llvm-svn: 195151
* DataLayout: value initialize globals to avoid static construction.Benjamin Kramer2013-11-191-2/+2
| | | | llvm-svn: 195150
* Support multiple COFF sections with the same name but different COMDAT.Rafael Espindola2013-11-194-45/+111
| | | | | | | | | | | | | | | | | | This is the first step to fix pr17918. It extends the .section directive a bit, inspired by what the ELF one looks like. The problem with using linkonce is that given .section foo .linkonce.... .section foo .linkonce we would already have switched sections when getting to .linkonce. The cleanest solution seems to be to add the comdat information in the .section itself. llvm-svn: 195148
* Obvious pasto survived a couple rounds of cleanup.Andrew Trick2013-11-191-2/+1
| | | | | | Caught by Aaron Ballman. llvm-svn: 195138
* YAML I/O - Added default trait support for std:string. Making another ↵John Thompson2013-11-191-0/+11
| | | | | | attempt at this, this time doing a clean build on Linux, and running the LLVM, clang, and extra tests, to try to make sure there's no problems. llvm-svn: 195134
* Fix assembly operands for the SSE2 cvtsd2ss instruction.Cameron McInally2013-11-191-2/+2
| | | | llvm-svn: 195129
* [Mips] Adjust float ABI settings in case of MIPS16 mode.Simon Atanasyan2013-11-191-0/+10
| | | | | | | | | | | Hard float for mips16 means essentially to compile as soft float but to use a runtime library for soft float that is written with native mips32 floating point instructions (those runtime routines run in mips32 hard float mode). The patch reviewed by Reed Kotler. llvm-svn: 195123
* Formatting and 80-col.Eric Christopher2013-11-194-15/+21
| | | | llvm-svn: 195122
* Fix comment.Eric Christopher2013-11-191-1/+2
| | | | llvm-svn: 195121
* Refactor the section emission code to remove duplicates now thatEric Christopher2013-11-191-39/+15
| | | | | | | we can emit various sections in any order. No functional change. llvm-svn: 195120
* Reformat file.Eric Christopher2013-11-191-249/+283
| | | | llvm-svn: 195119
* Fix an issue where SROA computed different results based on the relativeChandler Carruth2013-11-191-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | order of slices of the alloca which have exactly the same size and other properties. This was found by a perniciously unstable sort implementation used to flush out buggy uses of the algorithm. The fundamental idea is that findCommonType should return the best common type it can find across all of the slices in the range. There were two bugs here previously: 1) We would accept an integer type smaller than a byte-width multiple, and if there were different bit-width integer types, we would accept the first one. This caused an actual failure in the testcase updated here when the sort order changed. 2) If we found a bad combination of types or a non-load, non-store use before an integer typed load or store we would bail, but if we found the integere typed load or store, we would use it. The correct behavior is to always use an integer typed operation which covers the partition if one exists. While a clever debugging sort algorithm found problem #1 in our existing test cases, I have no useful test case ideas for #2. I spotted in by inspection when looking at this code. llvm-svn: 195118
* Add support for software expansion of 64-bit integer division instructions.Michael Ilseman2013-11-191-45/+199
| | | | | | Patch by Dmitri Shtilman! llvm-svn: 195116
* Fix patchpoint comments.Andrew Trick2013-11-191-1/+2
| | | | llvm-svn: 195103
* Use symbolic operands in the patchpoint folding routine and fix a spilling bug.Andrew Trick2013-11-191-8/+6
| | | | | | Fixes <rdar://15487687> [JS] AnyRegCC argument ends up being spilled llvm-svn: 195094
* Add an abstraction to handle patchpoint operands.Andrew Trick2013-11-192-67/+101
| | | | | | | Hard-coded operand indices were scattered throughout lowering stages and layers. It was super bug prone. llvm-svn: 195093
* Implement AArch64 neon instructions class SIMD lsone and SIMD lone-post.Hao Liu2013-11-199-191/+1840
| | | | llvm-svn: 195078
* Remove unused special member functions and reformat.Eric Christopher2013-11-192-14/+3
| | | | llvm-svn: 195077
* Fix previous commit and fully remove variable.Eric Christopher2013-11-193-5/+3
| | | | llvm-svn: 195076
* Remove unused variable.Eric Christopher2013-11-191-1/+0
| | | | llvm-svn: 195075
* Implement AArch64 SISD intrinsics for vget_high and vget_low.Jiangning Liu2013-11-191-4/+33
| | | | llvm-svn: 195074
* implement MC layer of AArch64 neon instruction PMULL and PMULL2 with 128 bit ↵Kevin Qin2013-11-192-0/+12
| | | | | | integer. llvm-svn: 195072
* Add predicate for AArch64 crypto instructions.Jiangning Liu2013-11-191-1/+8
| | | | llvm-svn: 195071
* [Mips] Support for MicroMips STO refactoring.Jack Carter2013-11-194-58/+9
| | | | | | | | | | | | | | | | No true functional changes. Change the "hack" name of emitMipsHackSTOCG to emitSymSTO. Remove demonstration code in AsmParser for emitMipsHackSTOCG and emitMipsHackELFFlags. The STO field is in an ELF symbol and is not an explicit directive. That said, we are missing the compliment call in AsmParser and that will need to be addressed soon. XFAIL dummy tests for emitMipsHackELFFlags and emitMipsHackELFFlags. These will built out with following patches. llvm-svn: 195067
* [weak vtables] Remove a bunch of weak vtablesJuergen Ributzka2013-11-1975-57/+256
| | | | | | | | | | | | This patch removes most of the trivial cases of weak vtables by pinning them to a single object file. The memory leaks in this version have been fixed. Thanks Alexey for pointing them out. Differential Revision: http://llvm-reviews.chandlerc.com/D2068 Reviewed by Andy llvm-svn: 195064
OpenPOWER on IntegriCloud