summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "[ARM] Fix MachO CPU Subtype selection"Renato Golin2015-08-144-106/+12
| | | | | | This reverts commit r245081, as it breaks many builds. llvm-svn: 245086
* MIR Serialization: Serialize the 'internal' register operand flag.Alex Lorenz2015-08-145-9/+18
| | | | llvm-svn: 245085
* MIR Serialization: Serialize the bundled machine instructions.Alex Lorenz2015-08-149-10/+240
| | | | llvm-svn: 245082
* [ARM] Fix MachO CPU Subtype selectionVedant Kumar2015-08-144-12/+106
| | | | | | | | | | This patch makes the Darwin ARM backend take advantage of TargetParser. It also teaches TargetParser about ARMV7K for the first time. This makes target triple parsing more consistent across llvm. Differential Revision: http://reviews.llvm.org/D11996 llvm-svn: 245081
* [x86] fix allowsMisalignedMemoryAccess() implementationSanjay Patel2015-08-142-13/+30
| | | | | | | | | | | | | | | | This patch fixes the x86 implementation of allowsMisalignedMemoryAccess() to correctly return the 'Fast' output parameter for 32-byte accesses. To test that, an existing load merging optimization is changed to use the TLI hook. This exposes a shortcoming in the current logic and results in the regression test update. Changing other direct users of the isUnalignedMem32Slow() x86 CPU attribute would be a follow-on patch. Without the fix in allowsMisalignedMemoryAccesses(), we will infinite loop when targeting SandyBridge because LowerINSERT_SUBVECTOR() creates 32-byte loads from two 16-byte loads while PerformLOADCombine() splits them back into 16-byte loads. Differential Revision: http://reviews.llvm.org/D10662 llvm-svn: 245075
* [test] Testing write access to llvmVedant Kumar2015-08-141-1/+1
| | | | llvm-svn: 245074
* [sancov] Fix an unused variable warning introduced in r245067Justin Bogner2015-08-141-1/+1
| | | | llvm-svn: 245072
* Reverting patch r244235.Kit Barton2015-08-143-58/+28
| | | | | | | | This patch will be redone in a different way. See http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20150810/292978.html for more details. llvm-svn: 245071
* [cmake] Start adding support for LLVM_USE_SANITIZER=Address on WindowsReid Kleckner2015-08-141-10/+31
| | | | | | Pass "-fsanitize=address" to the compiler and "-debug" to the linker. llvm-svn: 245070
* [sancov] Leave llvm.localescape in the entry blockReid Kleckner2015-08-144-9/+137
| | | | | | | | | | | | Summary: Similar to the change we applied to ASan. The same test case works. Reviewers: samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11961 llvm-svn: 245067
* Cleanup test whitespace or lack thereof. NFC.Chad Rosier2015-08-141-4/+4
| | | | llvm-svn: 245065
* [CMake] Fix PR14200, llvm-config output misses -fno-rttiChris Bieneman2015-08-141-6/+9
| | | | | | | | This change adds RTTI and Exception flags to llvm-config's cxxflags. This solution is a minimal patch to solve the issue, and is recommended for the 3.7 release branch. Tom Stellard's outstanding work is the longer term solution. Patch By: David Wiberg llvm-svn: 245064
* Revert "Centralize the information about which object format we are using."Rafael Espindola2015-08-148-46/+79
| | | | | | | | | | | | | | | | | | | | | This reverts commit r245047. It was failing on the darwin bots. The problem was that when running ./bin/llc -march=msp430 llc gets to if (TheTriple.getTriple().empty()) TheTriple.setTriple(sys::getDefaultTargetTriple()); Which means that we go with an arch of msp430 but a triple of x86_64-apple-darwin14.4.0 which fails badly. That code has to be updated to select a triple based on the value of march, but that is not a trivial fix. llvm-svn: 245062
* Convert tests under MC/ELF from macho-dump to llvm-readobj.Davide Italiano2015-08-142-12/+20
| | | | | | Yet another step towards deprecating macho-dump. llvm-svn: 245059
* don't repeaat function names in comments; NFCSanjay Patel2015-08-141-11/+8
| | | | llvm-svn: 245058
* Centralize the information about which object format we are using.Rafael Espindola2015-08-148-79/+46
| | | | | | | | | | | Other than some places that were handling unknown as ELF, this should have no change. The test updates are because we were detecting arm-coff or x86_64-win64-coff as ELF targets before. It is not clear if the enum should live on the Triple. At least now it lives in a single location and should be easier to move somewhere else. llvm-svn: 245047
* Separate out BDCE's analysis into a separate DemandedBits analysis.James Molloy2015-08-146-328/+456
| | | | | | | This allows other areas of the compiler to use BDCE's bit-tracking. NFCI. llvm-svn: 245039
* Renamed min tests (typo)Simon Pilgrim2015-08-142-176/+176
| | | | llvm-svn: 245038
* [AArch64] FMINNAN/FMAXNAN on f16 is not legal.James Molloy2015-08-142-2/+15
| | | | | | | | Spotted by Ahmed - in r244594 I inadvertently marked f16 min/max as legal. I've reverted it here, and marked min/max on scalar f16's as promote. I've also added a testcase. The test just checks that the compiler doesn't fall over - it doesn't create fmin nodes for f16 yet. llvm-svn: 245035
* [PM/AA] Remove two no-op overridden functions that just delegated to theChandler Carruth2015-08-142-10/+0
| | | | | | base class anyways. llvm-svn: 245034
* [LVer] Remove unused Pass parameter from versionLoop, NFCAdam Nemet2015-08-143-3/+3
| | | | llvm-svn: 245032
* [RuntimeDyld] Make sure code-sections aren't under-aligned.Lang Hames2015-08-141-0/+6
| | | | | | | | | | | | | | | | | | Code-section alignment should be at least as high as the minimum stub alignment. If the section alignment is lower it can cause padding to be emitted resulting in alignment errors if the section is mapped to a higher alignment on the target. E.g. If a text section with a 4-byte alignment gets 4-bytes of padding to guarantee 8-byte alignment for stubs but is re-mapped to an 8-byte alignment on the target, the 4-bytes of padding will push the stubs to 4-byte alignment causing a crash. No test case: There is currently no way to control host section alignment in llvm-rtdyld. This could be made testable by adding a custom memory manager. I'll look at that in a follow-up patch. llvm-svn: 245031
* [IR] Add token typesDavid Majnemer2015-08-1429-25/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This introduces the basic functionality to support "token types". The motivation stems from the need to perform operations on a Value whose provenance cannot be obscured. There are several applications for such a type but my immediate motivation stems from WinEH. Our personality routine enforces a single-entry - single-exit regime for cleanups. After several rounds of optimizations, we may be left with a terminator whose "cleanup-entry block" is not entirely clear because control flow has merged two cleanups together. We have experimented with using labels as operands inside of instructions which are not terminators to indicate where we came from but found that LLVM does not expect such exotic uses of BasicBlocks. Instead, we can use this new type to clearly associate the "entry point" and "exit point" of our cleanup. This is done by having the cleanuppad yield a Token and consuming it at the cleanupret. The token type makes it impossible to obscure or otherwise hide the Value, making it trivial to track the relationship between the two points. What is the burden to the optimizer? Well, it turns out we have already paid down this cost by accepting that there are certain calls that we are not permitted to duplicate, optimizations have to watch out for such instructions anyway. There are additional places in the optimizer that we will probably have to update but early examination has given me the impression that this will not be heroic. Differential Revision: http://reviews.llvm.org/D11861 llvm-svn: 245029
* Add support for cross block dse.Karthik Bhat2015-08-143-51/+404
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch enables dead stroe elimination across basicblocks. Example: define void @test_02(i32 %N) { %1 = alloca i32 store i32 %N, i32* %1 store i32 10, i32* @x %2 = load i32, i32* %1 %3 = icmp ne i32 %2, 0 br i1 %3, label %4, label %5 ; <label>:4 store i32 5, i32* @x br label %7 ; <label>:5 %6 = load i32, i32* @x store i32 %6, i32* @y br label %7 ; <label>:7 store i32 15, i32* @x ret void } In the above example dead store "store i32 5, i32* @x" is now eliminated. Differential Revision: http://reviews.llvm.org/D11143 llvm-svn: 245025
* [PM/AA] Run clang-format over the ObjCARC Alias Analysis code toChandler Carruth2015-08-142-37/+34
| | | | | | normalize its formatting before I make more substantial changes. llvm-svn: 245024
* [PM/AA] Don't bother forward declaring Function and Value, just includeChandler Carruth2015-08-141-5/+2
| | | | | | their headers. llvm-svn: 245023
* PowerPC: remove dead initialization (NFC)Saleem Abdulrasool2015-08-141-2/+1
| | | | | | Identified by the clang static analyzer. No functional change intended. llvm-svn: 245022
* [PM/AA] Extract the interface for GlobalsModRef into a header along withChandler Carruth2015-08-145-166/+204
| | | | | | | | | its creation function. This required shifting a bunch of method definitions to be out-of-line so that we could leave most of the implementation guts in the .cpp file. llvm-svn: 245021
* [PM/AA] Hoist the interface to TBAA into a dedicated header along withChandler Carruth2015-08-148-51/+78
| | | | | | its creation function. Update the relevant includes accordingly. llvm-svn: 245019
* [PM/AA] Run clang-format over TBAA code to normalize the formattingChandler Carruth2015-08-141-183/+187
| | | | | | before making substantial changes. llvm-svn: 245017
* [PM/AA] Remove a stray #include that snuck in via copy/paste whenChandler Carruth2015-08-141-1/+0
| | | | | | creating this header. llvm-svn: 245016
* [PM/AA] Clean up the SCEV-AA comment formatting and typos.Chandler Carruth2015-08-142-13/+11
| | | | llvm-svn: 245015
* [PM/AA] Run clang-format over the SCEV-AA code to normalize theChandler Carruth2015-08-142-42/+41
| | | | | | formatting. llvm-svn: 245014
* [PM/AA] Hoist the SCEV-AA interface to its own header and pull theChandler Carruth2015-08-144-46/+69
| | | | | | creation function into that header. llvm-svn: 245013
* [PM/AA] Hoist ScopedNoAliasAA's interface into a header and move theChandler Carruth2015-08-147-47/+78
| | | | | | | | | creation function there. Same basic refactoring as the other alias analyses. Nothing special required this time around. llvm-svn: 245012
* [PM/AA] Hoist the value handle definition for CFLAA into the header toChandler Carruth2015-08-142-23/+22
| | | | | | | satisfy libc++'s std::forward_list which requires the value type to be complete. llvm-svn: 245011
* [PM/AA] Run clang-format over the ScopedNoAliasAA pass prior to makingChandler Carruth2015-08-141-16/+12
| | | | | | substantial changes to normalize any formatting. llvm-svn: 245010
* [PM/AA] Extract a minimal interface for CFLAA to its own header file.Chandler Carruth2015-08-146-139/+184
| | | | | | | | | | I've used forward declarations and reorderd the source code some to make this reasonably clean and keep as much of the code as possible in the source file, including all the stratified set details. Just the basic AA interface and the create function are in the header file, and the header file is now included into the relevant locations. llvm-svn: 245009
* [PM/AA] Delete two pointlessly overridden methods on the AA interface byChandler Carruth2015-08-141-10/+0
| | | | | | | | | | | the AA counter pass. For pointsToConstantMemory, I think this is a "bug fix" as I think the code as written will actually infloop if ever reached. For the getModRefInfo, this is a no-op change but with a significantly simpler form. llvm-svn: 245007
* [PM/AA] Sink all the actual code from AliasAnalysisCounter back into theChandler Carruth2015-08-142-54/+64
| | | | | | | | | .cpp file to make the header much less noisy. Also makes it easy to use a static helper rather than a public method for printing lines of stats. llvm-svn: 245006
* [PM/AA] Run clang-format over this code to establish a clean baselineChandler Carruth2015-08-142-95/+106
| | | | | | for subsequent changes. llvm-svn: 245005
* [PM/AA] Hoist the AA counter pass into a header to match the analysisChandler Carruth2015-08-144-99/+126
| | | | | | | | | | | | | pattern. Also hoist the creation routine out of the generic header and into the pass header now that we have one. I've worked to not make any changes, even formatting ones here. I'll clean up the formatting and other things in a follow-up patch now that the code is in the right place. llvm-svn: 245004
* [SeparateConstOffsetFromGEP] sext(a)+sext(b) => sext(a+b) when a+b can't ↵Jingyue Wu2015-08-142-5/+138
| | | | | | | | | | | | | | | | | | | | sign-overflow. Summary: This patch implements my promised optimization to reunites certain sexts from operands after we extract the constant offset. See the header comment of reuniteExts for its motivation. One key building block that enables this optimization is Bjarke's poison value analysis (D11212). That helps to prove "a +nsw b" can't overflow. Reviewers: broune Subscribers: jholewinski, sanjoy, llvm-commits Differential Revision: http://reviews.llvm.org/D12016 llvm-svn: 245003
* [PM/AA] Remove the function names and class names from doxygen commentsChandler Carruth2015-08-142-15/+14
| | | | | | and generally clean up their formatting. llvm-svn: 245002
* [PM/AA] Move the LibCall AA creation routine declaration to thatChandler Carruth2015-08-144-9/+7
| | | | | | analysis's header file to be more consistent with other analyses. llvm-svn: 245001
* [PM/AA] Run clang-format over LibCallAliasAnalysis prior to makingChandler Carruth2015-08-142-60/+62
| | | | | | substantial changes needed for the new pass manager's AA integration. llvm-svn: 245000
* Update ExceptionDemo for exception handling API changes (personality ↵David Blaikie2015-08-141-1/+1
| | | | | | | | | function call->function move) The ExceptionDemo now compiles, but doesn't link... undefined type references to various typeinfo. llvm-svn: 244997
* Update MIRLangRef for MIR syntax change from r244982.Alex Lorenz2015-08-141-16/+11
| | | | llvm-svn: 244996
* Fix -Wformat warnings in ExceptionDemoDavid Blaikie2015-08-141-6/+7
| | | | llvm-svn: 244995
* Fix up the ExceptionDemo for some API changes over the past <time>David Blaikie2015-08-141-2/+2
| | | | | | | This still doesn't build -Werror clean, but other than that it should at least build. llvm-svn: 244994
OpenPOWER on IntegriCloud