- Aug 22, 2013
-
-
NAKAMURA Takumi authored
llvm-svn: 189031
-
Jordan Rose authored
I don't actually have a version of autoconf so I edited configure directly as well. It's copy-pasted so I think there was little margin for error. See also Clang-side dependency graph changes. llvm-svn: 189026
-
Joey Gouly authored
This uses the ARMcmov pattern that Tim cleaned up in r188995. Thanks to Simon Tatham for his floating point help! llvm-svn: 189024
-
NAKAMURA Takumi authored
[Win32] mapped_file_region: Fix a bug in CreateFileMapping() that Size must contain Offset when Offset >= 65536. llvm-svn: 189021
-
NAKAMURA Takumi authored
llvm-svn: 189020
-
Mihai Popa authored
The instruction to convert between floating point and fixed point representations takes an immediate operand for the number of fractional bits of the fixed point value. ARMARM specifies that when that number of bits is zero, the assembler should encode floating point/integer conversion instructions. This patch adds the necessary instruction aliases to achieve this behaviour. llvm-svn: 189009
-
Chandler Carruth authored
using GEPs. Previously, it used a number of different heuristics for analyzing the GEPs. Several of these were conservatively correct, but failed to fall back to SCEV even when SCEV might have given a reasonable answer. One was simply incorrect in how it was formulated. There was good code already to recursively evaluate the constant offsets in GEPs, look through pointer casts, etc. I gathered this into a form code like the SLP code can use in a previous commit, which allows all of this code to become quite simple. There is some performance (compile time) concern here at first glance as we're directly attempting to walk both pointers constant GEP chains. However, a couple of thoughts: 1) The very common cases where there is a dynamic pointer, and a second pointer at a constant offset (usually a stride) from it, this code will actually not do any unnecessary work. 2) InstCombine and other passes work very hard to collapse constant GEPs, so it will be rare that we iterate here for a long time. That said, if there remain performance problems here, there are some obvious things that can improve the situation immensely. Doing a vectorizer-pass-wide memoizer for each individual layer of pointer values, their base values, and the constant offset is likely to be able to completely remove redundant work and strictly limit the scaling of the work to scrape these GEPs. Since this optimization was not done on the prior version (which would still benefit from it), I've not done it here. But if folks have benchmarks that slow down it should be straight forward for them to add. I've added a test case, but I'm not really confident of the amount of testing done for different access patterns, strides, and pointer manipulation. llvm-svn: 189007
-
Joey Gouly authored
we pass these tests with -verify-machineinstrs. llvm-svn: 189006
-
Elena Demikhovsky authored
llvm-svn: 189005
-
Logan Chien authored
The function call to external function should come with PLT relocation type if the PIC relocation model is used. llvm-svn: 189002
-
NAKAMURA Takumi authored
llvm-svn: 189001
-
Chandler Carruth authored
pointers, but accumulate the offset into an APInt in the process of stripping it. This is a pretty handy thing to have, such as when trying to determine if two pointers are at some constant relative offset. I'll be committing a patch shortly to use it for exactly that purpose. llvm-svn: 189000
-
NAKAMURA Takumi authored
PageSize, aka AllocationGranularity, is 65536 on Win32 (and Cygwin). llvm-svn: 188999
-
NAKAMURA Takumi authored
The AllocationGranularity can be 65536 on Win32, even on Cygwin. llvm-svn: 188998
-
Chandler Carruth authored
Value. These methods probably don't belong here, and I'm discussing moving the lot of them to a better home, but for now I'm about to extend their functionality and wanted to tidy them up first. llvm-svn: 188997
-
Tim Northover authored
Back in the mists of time (2008), it seems TableGen couldn't handle the patterns necessary to match ARM's CMOV node that we convert select operations to, so we wrote a lot of fairly hairy C++ to do it for us. TableGen can deal with it now: there were a few minor differences to CodeGen (see tests), but nothing obviously worse that I could see, so we should probably address anything that *does* come up in a localised manner. llvm-svn: 188995
-
Tim Northover authored
The code for 'Q' and 'R' operand modifiers needs to look through tied operands to discover the register class. llvm-svn: 188990
-
Michael Gottesman authored
[stackprotector] When finding the split point to splice off the end of a parentmbb into a successmbb, include any DBG_VALUE MI. Fix for PR16954. llvm-svn: 188987
-
Matt Arsenault authored
llvm-svn: 188980
-
Hans Wennborg authored
Since it's an llvm-internal tool, we shouldn't install it. llvm-svn: 188976
-
Bill Wendling authored
llvm-svn: 188971
-
Jim Grosbach authored
Indirect tail-calls shouldn't use R9 for the branch destination, as it's not reliably a call-clobbered register. rdar://14793425 llvm-svn: 188967
-
Michael Gottesman authored
llvm-svn: 188957
-
Michael Gottesman authored
llvm-svn: 188956
-
Tom Stellard authored
When truncated vector stores were being custom lowered in VectorLegalizer::LegalizeOp(), the old (illegal) and new (legal) node pair was not being added to LegalizedNodes list. Instead of the legalized result being passed to VectorLegalizer::TranslateLegalizeResult(), the result was being passed back into VectorLegalizer::LegalizeOp(), which ended up adding a (new, new) pair to the list instead. This was causing an assertion failure when a custom lowered truncated vector store was the last instruction a basic block and the VectorLegalizer was unable to find it in the LegalizedNodes list when updating the DAG root. llvm-svn: 188953
-
Daniel Dunbar authored
llvm-svn: 188951
-
Daniel Dunbar authored
llvm-svn: 188950
-
Daniel Dunbar authored
llvm-svn: 188949
-
Daniel Dunbar authored
llvm-svn: 188948
-
Daniel Dunbar authored
llvm-svn: 188947
-
Daniel Dunbar authored
llvm-svn: 188946
-
Daniel Dunbar authored
llvm-svn: 188945
-
Manman Ren authored
This will make it easier to turn on struct-path aware TBAA since the metadata format will change. llvm-svn: 188944
-
Andrew Kaylor authored
llvm-svn: 188943
-
Tom Stellard authored
Spotted by Bill Wendling. llvm-svn: 188942
-
Yunzhong Gao authored
Replace "(255 & value)" with "(0xFF & value)" to improve clarity. llvm-svn: 188941
-
- Aug 21, 2013
-
-
Juergen Ributzka authored
The small utility function that pattern matches Base + Index + Offset patterns for loads and stores fails to recognize the base pointer for loads/stores from/into an array at offset 0 inside a loop. As a result DAGCombiner::MergeConsecutiveStores was not able to merge all stores. This commit fixes the issue by adding an additional pattern match and also a test case. Reviewer: Nadav llvm-svn: 188936
-
David Majnemer authored
Summary: This support will be utilized in things like clang to help check printf format specifiers that are only valid when using the VSCRT. Reviewers: rnk, asl, chandlerc Reviewed By: chandlerc CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1455 llvm-svn: 188935
-
David Blaikie authored
llvm-svn: 188933
-
Bill Wendling authored
llvm-svn: 188932
-