aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't drop alignment info on local common symbols.Benjamin Kramer2011-09-0119-38/+80
| | | | | | | | | | | - On COFF the .lcomm directive has an alignment argument. - On ELF we fall back to .local + .comm Based on a patch by NAKAMURA Takumi. Fixes PR9337, PR9483 and PR10128. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138976 91177308-0d34-0410-b5e6-96231b3b80d8
* Null-initialize to shut up -Wuninitialized warnings.Eli Friedman2011-09-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138974 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix apparent build error caused by r138948 on certain versions of GCC with ↵James Molloy2011-09-012-21/+36
| | | | | | -Werror. Sorry for the inconvenience. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138973 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduce indentation. No functionality change.Bill Wendling2011-09-011-17/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138968 91177308-0d34-0410-b5e6-96231b3b80d8
* Change worklist driven deletion to be an iterative process.Bill Wendling2011-09-012-42/+12
| | | | | | | Duncan noticed this! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138967 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test; sorry for any inconvenience.Eli Friedman2011-09-011-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138966 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an issue with the IR sink pass found by inspection. (I'm not sure ↵Eli Friedman2011-09-012-7/+22
| | | | | | anyone is actually using this, but might as well fix it since I found the issue.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138965 91177308-0d34-0410-b5e6-96231b3b80d8
* Add missing newline.Eli Friedman2011-09-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138964 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the build for us -Werror users.Nick Lewycky2011-09-012-37/+24
| | | | | | | | Remove broken emacs mode major notation marking a C++ file as C. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138963 91177308-0d34-0410-b5e6-96231b3b80d8
* Make isSafeToSpeculativelyExecute() return the right answer for some new ↵Eli Friedman2011-09-011-0/+4
| | | | | | instructions. Found by inspection; not sure what practical impact, if any, this has. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138962 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL this test on arm until the backend is fixed.Benjamin Kramer2011-09-011-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138955 91177308-0d34-0410-b5e6-96231b3b80d8
* This test depends on cmov being available.Benjamin Kramer2011-09-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138954 91177308-0d34-0410-b5e6-96231b3b80d8
* Permit remat of partial register defs when it is safe.Jakob Stoklund Olesen2011-09-012-5/+34
| | | | | | | | | | | | | | | | | An instruction may define part of a register where the other bits are undefined. In that case, it is safe to rematerialize the instruction. For example: %vreg2:ssub_0<def> = VLDRS <cp#0>, 0, pred:14, pred:%noreg, %vreg2<imp-def> The extra <imp-def> operand indicates that the instruction does not read the other parts of the virtual register, so a remat is safe. This patch simply allows multiple def operands for the virtual register. It is MI->readsVirtualRegister() that determines if we depend on a previous value so remat is impossible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138953 91177308-0d34-0410-b5e6-96231b3b80d8
* ARM 'rscs' mnemonic is carry-setting 'rsc', not 'rs' with a 'cs' condition code.Jim Grosbach2011-09-012-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138952 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix vbroadcast matching logic to early unmatch if the node doesn't haveBruno Cardoso Lopes2011-09-012-1/+15
| | | | | | only one use. Fix PR10825. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138951 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix up r137380 based on post-commit review by Jim Grosbach.James Molloy2011-09-014-615/+630
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138948 91177308-0d34-0410-b5e6-96231b3b80d8
* t2Bcc is allowed to have a predicate without a preceding IT instruction.Owen Anderson2011-09-012-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138946 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r138794, "Do not try to rematerialize a value from a partial definition."Jakob Stoklund Olesen2011-09-011-22/+1
| | | | | | | | | The problem is fixed for all register allocators by r138944, so this patch is no longer necessary. <rdar://problem/10032939> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138945 91177308-0d34-0410-b5e6-96231b3b80d8
* Prevent remat of partial register redefinitions.Jakob Stoklund Olesen2011-09-012-0/+37
| | | | | | | | | | | | | An instruction that redefines only part of a larger register can never be rematerialized since the virtual register value depends on the old value in other parts of the register. This was fixed for the inline spiller in r138794. This patch fixes the problem for all register allocators, and includes a small test case. <rdar://problem/10032939> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138944 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach MachineLICM reg pressure tracking code to deal with MVT::untyped. ↵Evan Cheng2011-09-011-27/+40
| | | | | | Sorry, I can't come up with a small test case. rdar://10043690 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138934 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to new EH scheme.Bill Wendling2011-09-014-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138933 91177308-0d34-0410-b5e6-96231b3b80d8
* Resubmit with fix. Properly remove the instructions except for landingpad, ↵Bill Wendling2011-09-011-9/+28
| | | | | | which should be removed only when its invokes are. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138932 91177308-0d34-0410-b5e6-96231b3b80d8
* Submitted this too early.Bill Wendling2011-09-011-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138931 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't DCE the landingpad instruction.Bill Wendling2011-09-011-0/+5
| | | | | | | The landingpad instruction can be removed only when its invokes are removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138930 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to new EH scheme.Bill Wendling2011-09-019-4/+49
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138928 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to new EH scheme.Bill Wendling2011-09-015-3/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138927 91177308-0d34-0410-b5e6-96231b3b80d8
* Update some tests to the new EH scheme.Bill Wendling2011-09-015-1/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138925 91177308-0d34-0410-b5e6-96231b3b80d8
* PreRA scheduler should avoid cloning compares.Andrew Trick2011-09-012-2/+44
| | | | | | | | | | Added canClobberReachingPhysRegUse() to handle a particular pattern in which a two-address instruction could be forced to interfere with EFLAGS, causing a compare to be unnecessarilly cloned. Fixes rdar://problem/5875261 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138924 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't forget to add the landingpad and resume instructions to the ↵Bill Wendling2011-09-011-0/+2
| | | | | | | | | InstructionList. This was found via a nightly build of 483.xalancbmk. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138923 91177308-0d34-0410-b5e6-96231b3b80d8
* Thumb2 assembly parsing and encoding for ADD(immediate).Jim Grosbach2011-09-014-8/+80
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138922 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixup for functions that return a bool.Chad Rosier2011-08-311-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138918 91177308-0d34-0410-b5e6-96231b3b80d8
* Reenable test.Bill Wendling2011-08-311-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138916 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert accidental commitBill Wendling2011-08-311-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138915 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable this test until Bill fixes it properly.Eli Friedman2011-08-311-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138914 91177308-0d34-0410-b5e6-96231b3b80d8
* Static relocation model Thumb jump table interworking.Jim Grosbach2011-08-311-0/+5
| | | | | | | | Make sure the low bit of the PC is set when loading an address directly for jump tables in static relocation model. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138912 91177308-0d34-0410-b5e6-96231b3b80d8
* The asm parser currently selects the wrong encoding for non-conditional ↵Owen Anderson2011-08-312-5/+6
| | | | | | Thumb2 branches. However, this exposed a number of situations where the decoder was too permissive in allowing invalid instructions to decode successful. Specify additional fixed bits to close those gaps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138910 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to new EH scheme.Bill Wendling2011-08-313-1/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138908 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to new EH scheme.Bill Wendling2011-08-311-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138906 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove old declare statements.Bill Wendling2011-08-311-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138905 91177308-0d34-0410-b5e6-96231b3b80d8
* Update more tests to the new EH scheme.Bill Wendling2011-08-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138904 91177308-0d34-0410-b5e6-96231b3b80d8
* Update more tests to the new EH scheme.Bill Wendling2011-08-3117-2/+114
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138903 91177308-0d34-0410-b5e6-96231b3b80d8
* Add tests for the transformations SCCP can do on atomic loads and stores ↵Eli Friedman2011-08-311-0/+30
| | | | | | (which are safe without any modifications). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138902 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix Size TypingDavid Greene2011-08-311-1/+1
| | | | | | | | Stores sizes as uint64_t to avoid possible truncation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138901 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r138894. This was failing on cmake-clang-i686-msvc10.Bill Wendling2011-08-311-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138900 91177308-0d34-0410-b5e6-96231b3b80d8
* Thumb2 t2Bcc should encode as t2B when condition is 'always'.Jim Grosbach2011-08-311-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138898 91177308-0d34-0410-b5e6-96231b3b80d8
* Move more code around and duplicate AVX patterns: MOVHPS and MOVLPSBruno Cardoso Lopes2011-08-311-109/+216
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138897 91177308-0d34-0410-b5e6-96231b3b80d8
* Move MOVAPS,MOVUPS patterns close to the instructions definitionBruno Cardoso Lopes2011-08-311-88/+92
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138896 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove "_Int" forms of MOVUPSmr and MOVAPSmrBruno Cardoso Lopes2011-08-311-16/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138895 91177308-0d34-0410-b5e6-96231b3b80d8
* Update more tests to the new EH scheme.Bill Wendling2011-08-316-12/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138894 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the tests to the new EH scheme.Bill Wendling2011-08-315-5/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138891 91177308-0d34-0410-b5e6-96231b3b80d8