summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [dsymutil] Add an way to iterate over a DebugMapObject symbols.Frederic Riss2015-03-151-0/+4
| | | | llvm-svn: 232305
* Remove use of unreserved identifier (_Self)David Blaikie2015-03-151-15/+36
| | | | | | And some unnecessary inline keywords llvm-svn: 232304
* Remove use of a reserved identifierDavid Blaikie2015-03-151-16/+17
| | | | | | (& some unnecessary 'inline' keywords, too) llvm-svn: 232303
* Remove use of reserved identifierDavid Blaikie2015-03-151-6/+9
| | | | | | | The C++ standard reserves all identifiers starting with an underscore followed by an uppercase letter for the implementation for any use. llvm-svn: 232302
* llvm-cxxdump: Rename llvm-vtabledump to llvm-cxxdumpDavid Majnemer2015-03-1516-54/+55
| | | | | | | llvm-vtabledump has grown enough functionality not related to vtables that it deserves a name which is more descriptive. llvm-svn: 232301
* [dsymutil] Add function size to the debug map.Frederic Riss2015-03-154-34/+49
| | | | | | | | | | | | The debug map embedded by ld64 in binaries conatins function sizes. These sizes are less precise than the ones given by the debug information (byte granularity vs linker atom granularity), but they might cover code that is referenced in the line table but not in the DIE tree (that might very well be a compiler bug that I need to investigate later). Anyway, extracting that information is necessary to be able to mimic dsymutil's behavior exactly. llvm-svn: 232300
* DbgIntrinsicInst: Downcast to specialized MDNodes in accessorsDuncan P. N. Exon Smith2015-03-153-6/+24
| | | | | | | Change accessors to downcast to `MDLocalVariable` and `MDExpression`, now that we have -verify checks in place to confirm that it's safe. llvm-svn: 232299
* Remove some unnecessary 'inline' keywordsDavid Blaikie2015-03-151-8/+8
| | | | llvm-svn: 232298
* IntervalIterator: Add move semantics rather than relying on broken implicit ↵David Blaikie2015-03-151-0/+6
| | | | | | | | copy ctor (found with -Wdeprecated) We were just getting lucky because the copy ctor would be elided by RVO. llvm-svn: 232297
* Verifier: Check debug info intrinsic argumentsDuncan P. N. Exon Smith2015-03-1530-88/+210
| | | | | | | | | | | | | | | | | | | Verify that debug info intrinsic arguments are valid. (These checks will not recurse through the full debug info graph, so they don't need to be cordoned of in `DebugInfoVerifier`.) With those checks in place, changing the `DbgIntrinsicInst` accessors to downcast to `MDLocalVariable` and `MDExpression` is natural (added isa specializations in `Metadata.h` to support this). Added tests to `test/Verifier` for the new -verify checks, and fixed the debug info in all the in-tree tests. If you have out-of-tree testcases that have started to fail to -verify, hopefully the verify checks are helpful. The most likely problem is that the expression argument is `!{}` (instead of `!MDExpression()`). llvm-svn: 232296
* [opaque pointer type] IRBuilder gep migration progressDavid Blaikie2015-03-154-18/+30
| | | | llvm-svn: 232294
* Made CFLAA agree with clang-format. NFC.George Burgess IV2015-03-151-9/+7
| | | | | | So everyone's lives are easier in the future llvm-svn: 232293
* Verifier: Remove unnecessary null checkDuncan P. N. Exon Smith2015-03-151-3/+3
| | | | | | | This is already assumed to be non-null above due to a dyn_cast<>. Also remove extraneous braces around statement. llvm-svn: 232292
* Verifier: Make the raw_ostream constructor argument requiredDuncan P. N. Exon Smith2015-03-151-2/+2
| | | | | | This was passed inconsistently; seems clearer to make it required anyway. llvm-svn: 232291
* Assembler: Rewrite test for function-local metadataDuncan P. N. Exon Smith2015-03-152-55/+20
| | | | | | | | | | | | | | | | | | | This test for function-local metadata did strange things, and never really sent in valid arguments for `llvm.dbg.declare` and `llvm.dbg.value` intrinsics. Those that might have once been valid have bitrotted. Rewrite it to be a targeted test for function-local metadata -- unrelated to debug info, which is tested elsewhere -- and rename it to better match other metadata-related tests. (Note: the scope of function-local metadata changed drastically during the metadata/value split, but I didn't properly clean up this testcase. Most of the IR in this file, while invalid for debug info intrinsics, used to provide coverage for various (now illegal) forms of function-local metadata.) llvm-svn: 232290
* Simplified some stack folding tests.Simon Pilgrim2015-03-142-36/+36
| | | | | | Replaced explicit pmovzx* intrinsic tests with general shuffles llvm-svn: 232286
* Update InstCombine to transform aggregate stores into scalar stores.Mehdi Amini2015-03-142-0/+59
| | | | | | | | | | | | | | | | | | | Summary: This is a first step toward getting proper support for aggregate loads and stores. Test Plan: Added unittests Reviewers: reames, chandlerc Reviewed By: chandlerc Subscribers: majnemer, joker.eph, chandlerc, llvm-commits Differential Revision: http://reviews.llvm.org/D7780 Patch by Amaury Sechet From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 232284
* Update LangRef now that a DataLayout is mandatory.Mehdi Amini2015-03-141-41/+42
| | | | | | | | | | | | | Reviewers: rafael, echristo Reviewed By: rafael Subscribers: rafael, llvm-commits Differential Revision: http://reviews.llvm.org/D8230 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 232283
* Add some missed formattingDavid Blaikie2015-03-141-4/+7
| | | | llvm-svn: 232281
* [opaque pointer type] gep API migrationDavid Blaikie2015-03-143-21/+14
| | | | | | | This concludes the GetElementPtrInst::Create migration, thus marking the beginning of the IRBuilder::CreateGEP* migration to come. llvm-svn: 232280
* [opaque pointer type] gep API migrationDavid Blaikie2015-03-141-5/+6
| | | | llvm-svn: 232279
* A few minor updates based on feedback from Justin and a few things I thought ↵Chris Bieneman2015-03-142-25/+47
| | | | | | | | | | | | were missing. * Moved autotools configure & build example out of "Getting Started Quickly (A Summary)" and into BuildingLLVMWithAutoTools. * Removed the annotations that CMake is the recommended process and Autotools is alternate. * Added brief documentation about build targets under "Getting Started Quickly..." * Added Overview text to BuildingLLVMWithAutotools * Fixed up a broken link. llvm-svn: 232278
* [opaque pointer type] gep API migration, ArgPromoDavid Blaikie2015-03-141-16/+19
| | | | | | | | | This involved threading the type-to-gep through a data structure, since the code was relying on the pointer type to carry this information. I imagine there will be a lot of this work across the project... slow work chasing each use case, but the assertions will help keep me honest. llvm-svn: 232277
* [opaque pointer type] more gep API migrations (AsmParser)David Blaikie2015-03-141-1/+1
| | | | llvm-svn: 232276
* IR: Make Metadata::print() reliable and usefulDuncan P. N. Exon Smith2015-03-144-39/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replumb the `AsmWriter` so that `Metadata::print()` is generally useful. (Similarly change `Metadata::printAsOperand()`.) - `SlotTracker` now has a mode where all metadata will be correctly numbered when initializing a `Module`. Normally, `Metadata` only referenced from within `Function`s gets numbered when the `Function` is incorporated. - `Metadata::print()` and `Metadata::printAsOperand()` (and `Metadata::dump()`) now take an optional `Module` argument. When provided, `SlotTracker` is initialized with the new mode, and the numbering will be complete and consistent for all calls to `print()`. - `Value::print()` uses the new `SlotTracker` mode when printing intrinsics with `MDNode` operands, `MetadataAsValue` operands, or the bodies of functions. Thus, metadata numbering will be consistent between calls to `Metadata::print()` and `Value::print()`. - `Metadata::print()` (and `Metadata::dump()`) now print the full definition of `MDNode`s: !5 = !{!6, !"abc", !7} This matches behaviour for `Value::print()`, which includes the name of instructions. - Updated call sites in `Verifier` to call `print()` instead of `printAsOperand()`. All this, so that `Verifier` can print out useful failure messages that involve `Metadata` for PR22777. Note that `Metadata::printAsOperand()` previously took an optional `bool` and `Module` operand. The former was cargo-culted from `Value::printAsOperand()` and wasn't doing anything useful. The latter didn't give consistent results (without the new `SlotTracker` mode). llvm-svn: 232275
* [opaque pointer type] more gep API migrationDavid Blaikie2015-03-145-19/+19
| | | | llvm-svn: 232274
* AsmWriter: Split out SlotTracker::processInstructionMetadata(), NFCDuncan P. N. Exon Smith2015-03-141-18/+24
| | | | llvm-svn: 232273
* AsmWriter: Use range-based for, NFCDuncan P. N. Exon Smith2015-03-141-15/+13
| | | | llvm-svn: 232272
* [opaque pointer type] more gep API migrationsDavid Blaikie2015-03-144-16/+17
| | | | | | | | | | Adding nullptr to all the IRBuilder stuff because it's the first thing that fails to build when testing without the back-compat functions, so I'll keep having to re-add these locally for each chunk of migration I do. Might as well check them in to save me the churn. Eventually I'll have to migrate these too, but I'm going breadth-first. llvm-svn: 232270
* No need to prototype RtlCaptureContext with mingw-w64.Yaron Keren2015-03-141-2/+3
| | | | llvm-svn: 232269
* Recover the ability to 'b CheckFailed' after r231577Duncan P. N. Exon Smith2015-03-142-13/+29
| | | | | | | | | | Given that the stated purpose of `CheckFailed()` is to provide a nice spot for a breakpoint, it'd be nice not to have to use a regex to break on it. Recover the ability to simply use `b CheckFailed` by specializing the message-only version, and by changing the variadic version to call into the message-only version. llvm-svn: 232268
* [dsymutil] Add support for debug_loc section.Frederic Riss2015-03-144-5/+127
| | | | | | | | There is no need to look into the location expressions to transfer them, the only modification to apply is to patch their base address to reflect the linked function address. llvm-svn: 232267
* array_pod_sort: Since we're checking the length anyways also ignore ↵Benjamin Kramer2015-03-141-7/+10
| | | | | | | | | one-element ranges Sorting them is obviously a noop and we can skip the libc call. This is surprisingly common in clang. NFC. llvm-svn: 232265
* [MachineLICM] First steps of sinking GEPs near calls.Daniel Jasper2015-03-142-0/+123
| | | | | | | | | | | | | | | Specifically, if there are copy-like instructions in the loop header they are moved into the loop close to their uses. This reduces the live intervals of the values and can avoid register spills. This is working towards a fix for http://llvm.org/PR22230. Review: http://reviews.llvm.org/D7259 Next steps: - Find a better cost model (which non-copy instructions should be sunk?) - Make this dependent on register pressure llvm-svn: 232262
* [mips] Remove trivial header for the MipsModuleISelDAGToDAG pass. NFC.Vasileios Kalintiris2015-03-144-60/+20
| | | | llvm-svn: 232260
* [mips] Remove trivial header for the Mips16HardFloat pass. NFC.Vasileios Kalintiris2015-03-144-129/+97
| | | | llvm-svn: 232259
* [mips] Remove trivial header for the MipsOs16 pass. NFC.Vasileios Kalintiris2015-03-144-93/+72
| | | | llvm-svn: 232258
* [dsymutil] Generate debug_aranges section.Frederic Riss2015-03-144-19/+93
| | | | | | | | This actually shares most of its implementation with the generation of the debug_ranges (the absence of 'a' is not a typo) contribution for the unit's DW_AT_ranges attribute. llvm-svn: 232246
* [dsymutil] Identify each CompileUnit with a unique ID.Frederic Riss2015-03-141-4/+8
| | | | | | | | | | The ID can eg. de used in MCSymbol names to differentiate the ones that need to be created for every unit. The ID is a constructor parameter and not a static class member so there is no issue with counter updates if we decide to thread that code. llvm-svn: 232245
* [opaque pointer type] Start migrating GEP creation to explicitly specify the ↵David Blaikie2015-03-146-58/+88
| | | | | | | | | | | | | | | pointee type I'm just going to migrate these in a pretty ad-hoc & incremental way - providing the backwards compatible API for now, then locally removing it, fixing a few callers, adding it back in and commiting those callers. Rinse, repeat. The assertions should ensure that if I get this wrong we'll find out about it and not just have one giant patch to revert, recommit, revert, recommit, etc. llvm-svn: 232240
* Add a bunch of CHECK missing colons in tests. NFC.Ahmed Bougacha2015-03-149-188/+189
| | | | | | Some wouldn't pass; fixed most, the rest will be fixed separately. llvm-svn: 232239
* CommandLine: Replace cold std::sort with array_pod_sort.Benjamin Kramer2015-03-141-11/+12
| | | | | | | | | Also replace an old use of qsort with it. Compiles down to the same thing but gives us some type safety. Safes a couple of kb on CommandLine.o. NFC. llvm-svn: 232236
* LowerBitSets: Do not export symbols for bit set referenced globals on Darwin.Peter Collingbourne2015-03-142-1/+14
| | | | | | | The linker on that platform may re-order symbols or strip dead symbols, which will break bit set checks. Avoid this by hiding the symbols from the linker. llvm-svn: 232235
* [dsymutil] Fix typo in comment.Frederic Riss2015-03-131-1/+1
| | | | | | | | Next time, when I fix a typo, I'll take the time to reread the whole comment instead of waiting for the commit email to realize that there is another one two words later... llvm-svn: 232234
* [dsymutil] Fix typo in doxygen comment.Frederic Riss2015-03-131-1/+1
| | | | llvm-svn: 232233
* [dsymutil] Implement DW_AT_ranges linking.Frederic Riss2015-03-133-11/+204
| | | | | | | Nothing fancy, just a straightforward offset to apply to the original debug_ranges entries to get them in line with the linked addresses. llvm-svn: 232232
* [dsymutil] Move a function declaration closer to its peers.Frederic Riss2015-03-131-1/+1
| | | | llvm-svn: 232231
* DWARFDebugRangeList: make the list of entries available to clients.Frederic Riss2015-03-131-0/+2
| | | | | | | For users like llvm-dsymutil that want to have access to the encoded debug_ranges entries. llvm-svn: 232230
* Use add32ri8 and friends on fast isel.Rafael Espindola2015-03-133-6/+16
| | | | | | | | | | | | | | | This fixes pr22854. The core issue on the bug is that there are multiple instructions that print the same in assembly. In fact, there doesn't seem to be any syntax for specifying that a constant that fits in 8 bits should use a 32 bit immediate. The attached patch changes fast isel to consider i16immSExt8, i32immSExt8, and i64immSExt8. They were disabled because fastisel didn’t know to call the predicate back in the day. llvm-svn: 232223
* bpf: turn on HasJIT flag in BPF backendAlexei Starovoitov2015-03-131-1/+1
| | | | | | basic tests that use BPF backend to produce code in memory are passing. llvm-svn: 232222
OpenPOWER on IntegriCloud