summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* libc++abi: remove build infrastructure for unwindSaleem Abdulrasool2015-04-251-5/+3
| | | | | | | | This removes the libunwind build infrastructure as libunwind is gaining its own CMakeLists.txt. The removal must occur first due to the multiple definitions of the same target. llvm-svn: 235794
* InstrProf: Fix coverage maps for conditional operatorsJustin Bogner2015-04-242-2/+22
| | | | | | | | | This fixes a crash when we're emitting coverage and a macro appears between two binary conditional operators, ie, "foo ?: MACRO ?: bar", and fixes the interaction of macros and conditional operators in general. llvm-svn: 235793
* Fix build error from accidental changeAndrew Kaylor2015-04-241-2/+1
| | | | llvm-svn: 235792
* [WinEH] Find correct cloned entry block for outlined handler functions.Andrew Kaylor2015-04-241-1/+2
| | | | llvm-svn: 235791
* Eliminate redundant Alias test and improve Common Short Spellings test ↵Adrian McCarthy2015-04-247-350/+20
| | | | | | http://reviews.llvm.org/D9268 llvm-svn: 235790
* [WinEH] Find correct cloned entry block for outlined handler functions.Andrew Kaylor2015-04-241-4/+13
| | | | llvm-svn: 235789
* Assert that Process::FindInEnvPath() is passed a relative path.Nico Weber2015-04-241-0/+1
| | | | | | | It misbehaves with absolute paths. (So does path::append().) Goes with clang r235787. llvm-svn: 235788
* clang-cl: Don't look up absolute paths in %LIB%.Nico Weber2015-04-242-1/+7
| | | | | | | | | Before this patch, passing a non-existent absolute path to clang-cl would cause stat'ing of impossible paths. For example, `clang-cl -c d:\adsfasdf.txt` would cause a stat of C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\LIBd:\asdfadsf.cc llvm-svn: 235787
* Linker: Copy over function metadata attachmentsDuncan P. N. Exon Smith2015-04-243-0/+46
| | | | | | | Update `lib/Linker` to handle `Function` metadata attachments. The attachments stick with the function body. llvm-svn: 235786
* IR: Add assembly/bitcode support for function metadata attachmentsDuncan P. N. Exon Smith2015-04-247-9/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add serialization support for function metadata attachments (added in r235783). The syntax is: define @foo() !attach !0 { Metadata attachments are only allowed on functions with bodies. Since they come before the `{`, they're not really part of the body; since they require a body, they're not really part of the header. In `LLParser` I gave them a separate function called from `ParseDefine()`, `ParseOptionalFunctionMetadata()`. In bitcode, I'm using the same `METADATA_ATTACHMENT` record used by instructions. Instruction metadata attachments are included in a special "attachment" block at the end of a `Function`. The attachment records are laid out like this: InstID (KindID MetadataID)+ Note that these records always have an odd number of fields. The new code takes advantage of this to recognize function attachments (which don't need an instruction ID): (KindID MetadataID)+ This means we can use the same attachment block already used for instructions. This is part of PR23340. llvm-svn: 235785
* Verifier: Function metadata attachments require a bodyDuncan P. N. Exon Smith2015-04-242-0/+31
| | | | | | | | Add a verifier check that only functions with bodies have metadata attachments. This should help catch bugs in frontends and transformation passes. Part of PR23340. llvm-svn: 235784
* IR: Add Function metadata attachmentsDuncan P. N. Exon Smith2015-04-245-1/+230
| | | | | | | | Add IR support for `Metadata` attachments. Assembly and bitcode support will follow shortly, but for now we just have unit tests. This is part of PR23340. llvm-svn: 235783
* LLParser: Simplify ParseInstructionMetadata(), NFCDuncan P. N. Exon Smith2015-04-242-7/+6
| | | | | | | | Remove unused `PFS` variable and take the `Instruction` by reference. (Not really related to PR23340, but might as well clean this up while I'm here.) llvm-svn: 235782
* [DAGCombiner] Fix the type used in canFoldInAddressingMode to account for theQuentin Colombet2015-04-241-2/+2
| | | | | | | | | | | | | | | | | | right scaling. In the function canFoldInAddressingMode, VT is computed as the type of the destination/source of a LOAD/STORE operations, instead of the memory type of the operation. On targets with a scaling factor on the offset of the LOAD/STORE operations, the function may return false for actually valid cases. This may then prevent the selection of profitable pre or post indexed load/store operations, and instead select pre or post indexed load/store for unprofitable cases. Patch by Francois de Ferriere <francois.de-ferriere@st.com>! Differential Revision: http://reviews.llvm.org/D9146 llvm-svn: 235780
* [ASan/Win] Increase the size of the PC array for coverage on WindowsTimur Iskhodzhanov2015-04-241-2/+3
| | | | llvm-svn: 235779
* LLParser: Split out ParseMetadataAttachment(), NFCDuncan P. N. Exon Smith2015-04-242-5/+15
| | | | | | Make the code reusable for `Function` metadata attachments (PR23340). llvm-svn: 235778
* [opaque pointer type] Verifier/AutoUpgrade: Remove a few uses of ↵David Blaikie2015-04-243-18/+18
| | | | | | PointerType::getElementType llvm-svn: 235777
* Use MemoryBufferRef instead of MemoryBuffer&. NFC.Rafael Espindola2015-04-249-9/+11
| | | | | | This just reduces the noise from another patch. llvm-svn: 235776
* AsmWriter: Parameterize the syntactic separator for attachmentsDuncan P. N. Exon Smith2015-04-241-8/+10
| | | | | | | | Parameterize the separator for attachments, since `Function` metadata attachments (PR23340) aren't going to use a `,` (comma). No real functionality change. llvm-svn: 235775
* AsmWriter: Only collect attachment names once per moduleDuncan P. N. Exon Smith2015-04-241-2/+4
| | | | | | | | Collect metadata names once per `AssemblyWriter` instead of every time we need to print some attachments. Just a drive-by; this caught my eye while I was refactoring the code in r235772. llvm-svn: 235774
* Remove an unused variable to prevent -Werror build failures.Kaelyn Takata2015-04-241-1/+0
| | | | llvm-svn: 235773
* AsmWriter: Split out code for printing Metadata attachments, NFCDuncan P. N. Exon Smith2015-04-241-14/+25
| | | | | | | Refactor the code for printing `Instruction` metadata attachments so it can be reused for `Function`. llvm-svn: 235772
* SimplifyCFG: Correctly handle switch lookup tables which fully cover the ↵Hans Wennborg2015-04-242-4/+38
| | | | | | | | | | | | | input type and use bit tests to check for holes When using bit tests for hole checks, we call AddPredecessorToBlock to give the phi node a value from the bit test block. This would break if we've previously called removePredecessor on the default destination because the switch is fully covered. Test case by Mark Lacey. llvm-svn: 235771
* IR: Use a bitmask to access GlobalObject subclass dataDuncan P. N. Exon Smith2015-04-242-3/+15
| | | | | | | | Make room for more than just `Function::isMaterializable()` in the `GlobalObject` subclass data bitfield. Since we're treating it like a bitfield, change `Function::Function()` to zero-out the whole thing. llvm-svn: 235770
* IR: Extract set logic from Instruction attachments, NFCDuncan P. N. Exon Smith2015-04-242-57/+99
| | | | | | | | | | | Extract the set logic for metadata attachments from `Instruction` so it can be reused for `Function` (PR23340). This data structure makes a `SmallVector<>` look (a little) like a map, just doing the bare minimum to support the `Instruction` (and soon, `Function`) metadata API. llvm-svn: 235769
* [SEH] Implement GetExceptionCode in __except blocksReid Kleckner2015-04-248-33/+108
| | | | | | | | | This introduces an intrinsic called llvm.eh.exceptioncode. It is lowered by copying the EAX value live into whatever basic block it is called from. Obviously, this only works if you insert it late during codegen, because otherwise mid-level passes might reschedule it. llvm-svn: 235768
* IR: Use remove_if for Instruction::dropUnknownMetadata()Duncan P. N. Exon Smith2015-04-241-16/+8
| | | | | | | | | | Technically the operations are different -- the old logic moved items from the back into the opened-up slots, instead of the usual `remove_if()` logic of a slow and a fast iterator -- but unless a profile tells us otherwise I prefer the simpler logic here. Regardless, there shouldn't be an observable function change. llvm-svn: 235767
* unwind: remove libc++abi testsSaleem Abdulrasool2015-04-246-771/+0
| | | | | | | These are related to libc++abi's personality routine and not core unwinding. These have been restored in libc++abi, and are no longer needed here. llvm-svn: 235766
* libc++abi: move tests backSaleem Abdulrasool2015-04-246-0/+771
| | | | | | | These are apparently related to libc++'s unwind personality handler and not unwind core. Move them back to the correct location. llvm-svn: 235765
* IR: Remove MDMapTy and MDPairTy typedefs, NFCDuncan P. N. Exon Smith2015-04-242-17/+10
| | | | | | | Remove some typedefs in preparation for factoring out attachment logic from `Instruction`. llvm-svn: 235764
* IR: Rename LLVMContextImpl::MetadataStore to InstructionMetadataDuncan P. N. Exon Smith2015-04-242-21/+23
| | | | | | | Rename `MetadataStore` to the more explicit `InstructionMetadata`. This will make room for `FunctionMetadata` (start of PR23340). llvm-svn: 235763
* Fix compilation warnings without cl_khr_fp64Jan Vesely2015-04-243-6/+32
| | | | | | Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu> Reviewed-by: Tom Stellard <thomas.stellard@amd.com> llvm-svn: 235762
* [LSan] Add function attribute forgotten in r235728.Alexey Samsonov2015-04-241-0/+1
| | | | llvm-svn: 235761
* libc++abi: remove the duplicated unwind contentSaleem Abdulrasool2015-04-2432-12473/+2
| | | | | | | | | | The unwinder has been moved into its own project setup at http://svn.llvm.org/projects/libunwind/trunk. This simply removes the now duplicated content. This move was previously discussed on llvmdev at [1]. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html llvm-svn: 235759
* unwind: move src/Unwind, include/, and test/ unwind contentSaleem Abdulrasool2015-04-2431-0/+12473
| | | | | | | | | | | This moves the majority of the unwind sources into the new project layout for libunwind. This was previously discussed on llvmdev at [1]. This is a purely movement related change, with the build infrastructure currently still residing in the libc++abi repository. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/081507.html llvm-svn: 235758
* [opaque pointer type] Update test cases now that the type for an invoke is ↵David Blaikie2015-04-241-1/+1
| | | | | | just a function type, not a pointer-to-function type llvm-svn: 235756
* [opaque pointer type] Add textual IR support for explicit type parameter to ↵David Blaikie2015-04-2417-78/+69
| | | | | | | | | | the invoke instruction Same as r235145 for the call instruction - the justification, tradeoffs, etc are all the same. The conversion script worked the same without any false negatives (after replacing 'call' with 'invoke'). llvm-svn: 235755
* [PATCH] [Hexagon] Adding a test case for calling convention.Sundeep Kushwaha2015-04-241-0/+73
| | | | | | http://reviews.llvm.org/D9241 llvm-svn: 235754
* [AsmPrinter] Make AsmPrinter's OutStreamer member a unique_ptr.Lang Hames2015-04-2437-973/+978
| | | | | | | AsmPrinter owns the OutStreamer, so an owning pointer makes sense here. Using a reference for this is crufty. llvm-svn: 235752
* Simplify parseMemberFiles to take a single file.Rafael Espindola2015-04-243-14/+13
| | | | llvm-svn: 235751
* Revert r235749 - Accidentally commited cruft from the wrong path.Lang Hames2015-04-241-1/+0
| | | | llvm-svn: 235750
* [CodeGen] Make AsmPrinter's OutStreamer member a unique_ptr.Lang Hames2015-04-241-0/+1
| | | | | | | AsmPrinter owns the OutStreamer, so an owning pointer makes sense here. Using a reference for this is crufty. llvm-svn: 235749
* Simplify now that there is only one file. NFC.Rafael Espindola2015-04-243-20/+15
| | | | llvm-svn: 235747
* unwind: stage 2 of creating project structureSaleem Abdulrasool2015-04-240-0/+0
| | | | llvm-svn: 235746
* Return ErrorOr<std::unique_ptr<File>>. NFC.Rafael Espindola2015-04-246-23/+21
| | | | llvm-svn: 235744
* Remove unused enum value. NFC.Rafael Espindola2015-04-242-3/+0
| | | | llvm-svn: 235742
* Return an ErrorOr<std::unique_ptr<File>>. NFC.Rafael Espindola2015-04-248-39/+42
| | | | llvm-svn: 235741
* [Test] Explictly pass target architecture.Davide Italiano2015-04-241-1/+1
| | | | | | | If we're not being explicit, the test fails on windows. Reported and tested by Aaron Ballman! llvm-svn: 235739
* Revert changes to LTO test case since llvm-lto can't handle textual IR inputsDavid Blaikie2015-04-241-1/+2
| | | | llvm-svn: 235738
* Look for both .debug and dsym debugging symbol information for stripped ↵Robert Flack2015-04-242-408/+249
| | | | | | | | | | | | | | | | | executable. Currently Symbols::LocateExecutableSymbolFile on MacOSX only looks for external dsym debugging information, however if running on a stripped dwarf executable it should also check for a .debug file as well. Test Plan: ./dotest.py $DOTEST_OPTS -t -p TestSharedLibStrippedSymbols.py This test now passes when running a remote Mac -> Linux test, and still passes running locally on Mac or locally on Linux. Differential Revision: http://reviews.llvm.org/D9174 llvm-svn: 235737
OpenPOWER on IntegriCloud