summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Add a completely hack-ish tool to sort includes according to the codingChandler Carruth2012-12-031-0/+79
| | | | | | | | | | | | | | | standards. I am a terrible Python programmer. Patches more the welcome. Please tell me how this should look if it should look differently. It's just a tiny little script so it didn't make sense to go through pre-commit review, especially as someone who actually knows python may want to just rip it apart and do it The Right Way. I will be preparing a commit shortly that uses this script to canonicalize *all* of the #include lines in LLVM. Really, all of them. llvm-svn: 169125
* Remove some buggy and apparantly unnecessary code from SROA.Chandler Carruth2012-12-031-25/+6
| | | | | | | | | | | | | | | | | | | | | | | | | The partitioning logic attempted to handle uses of an alloca with an offset starting before the alloca so long as the use had some overlap with the alloca itself. However, there was a bug where we tested '(uint64_t)Offset >= AllocSize' without first checking whether 'Offset' was positive. As a consequence, essentially every negative offset (that is, starting *before* the alloca does) would be thrown out, even if it was overlapping. The subsequent code to throw out negative offsets which were actually non-overlapping was essentially dead. The code to *handle* overlapping negative offsets was actually dead! I've just removed all of this, and taught SROA to discard any uses which start prior to the alloca from the beginning. It has the lovely property of simplifying the code. =] All the tests still pass, and in fact no new tests are needed as this is already covered by our testsuite. Fixing the code so that negative offsets work the way the comments indicate they were supposed to work causes regressions. That's how I found this. Anyways, this is all progress in the correct direction -- tightening up SROA to be maximally aggressive. Some day, I really hope to turn out-of-bounds accesses to an alloca into 'unreachable'. llvm-svn: 169120
* fix stats for added checksNuno Lopes2012-12-031-1/+1
| | | | llvm-svn: 169119
* Define signed const-ext predicates.Jyotsna Verma2012-12-031-0/+131
| | | | llvm-svn: 169117
* Remove 'deplibs' keyword, since it's no longer used.Bill Wendling2012-12-031-1/+1
| | | | llvm-svn: 169116
* Clean up, bring up-to-date and apply consistent formatting.Eli Bendersky2012-12-031-30/+21
| | | | | | This document is a long-time pet peeve :-) More fixes to come. llvm-svn: 169115
* Allow merging multiple store sequences on the same chain.Nadav Rotem2012-12-022-2/+46
| | | | llvm-svn: 169111
* Bring vim keyword lists up to date.Benjamin Kramer2012-12-021-36/+33
| | | | llvm-svn: 169110
* Fix a bug in FileCheck that wouldn't let define variables as follows:Eli Bendersky2012-12-023-5/+56
| | | | | | | | | | | | ; CHECK: [[VAR:[a-z]]] The problem was that to find the end of the regex var definition, it was simplistically looking for the next ]] and finding the incorrect one. A better approach is to count nesting of brackets (taking escaping into account). This way the brackets that are part of the regex can be discovered and skipped properly, and the ]] ending is detected in the right place. llvm-svn: 169109
* Fix an invalid regex in the testEli Bendersky2012-12-021-1/+1
| | | | llvm-svn: 169108
* Simplify the coding standards for #include ordering. The ordering is nowChandler Carruth2012-12-021-9/+2
| | | | | | | trivially achievable with an editor. I'll likely check in a silly python script to help with this too. llvm-svn: 169107
* Unbreak Sphinx buildJustin Holewinski2012-12-021-1/+2
| | | | llvm-svn: 169106
* Another fix attempt to Makefile.sphinx - copy the PNGs from tutorial/ as well,Eli Bendersky2012-12-011-1/+2
| | | | | | and recursive copying is not required for the tutorial/ directory. llvm-svn: 169105
* Attempt to fix Makefile.sphinx to not generate errors while trying to copyEli Bendersky2012-12-011-1/+1
| | | | | | files from tutorial/.svn llvm-svn: 169104
* Update FileCheck's documentation to mention recently added feature ofEli Bendersky2012-12-011-15/+16
| | | | | | matching a variable defined on the same line. llvm-svn: 169103
* [python] Add markup option to disassemblerGregory Szorc2012-12-012-1/+23
| | | | | | Patch contributed by Wladimir J. van der Laan <laanwj@gmail.com> llvm-svn: 169102
* Support referencing variables defined on the same line.Eli Bendersky2012-12-012-16/+56
| | | | | | | See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121126/157198.html and related discussions. llvm-svn: 169101
* Remove bugzilla link.James Molloy2012-12-011-2/+1
| | | | llvm-svn: 169091
* Documentation: convert WritingAnLLVMBackend.html to reSTDmitri Gribenko2012-12-014-2559/+1842
| | | | llvm-svn: 169087
* Add .arcconfig to the repository. Useful if someone wants to use ↵Benjamin Kramer2012-12-011-0/+4
| | | | | | phabricator's command line tool. llvm-svn: 169085
* SROA: Avoid struct and array types early to avoid creating an overly large ↵Benjamin Kramer2012-12-012-0/+16
| | | | | | | | | | integer type. Fixes PR14465. Differential Revision: http://llvm-reviews.chandlerc.com/D148 llvm-svn: 169084
* Revert previous check in r168581, r169079 as they are still in code review ↵Zhou Sheng2012-12-013-8343/+4
| | | | | | status. llvm-svn: 169083
* The patch is to improve the memory footprint of pass GlobalOpt. Zhou Sheng2012-12-012-4/+8331
| | | | | | | | | | | | Also check in a case to repeat the issue, on which 'opt -globalopt' consumes 1.6GB memory. The big memory footprint cause is that current GlobalOpt one by one hoists and stores the leaf element constant into the global array, in each iteration, it recreates the global array initializer constant and leave the old initializer alone. This may result in many obsolete constants left. For example: we have global array @rom = global [16 x i32] zeroinitializer After the first element value is hoisted and installed: @rom = global [16 x i32] [ 1, 0, 0, ... ] After the second element value is installed: @rom = global [16 x 32] [ 1, 2, 0, 0, ... ] // here the previous initializer is obsolete ... When the transform is done, we have 15 obsolete initializers left useless. llvm-svn: 169079
* VMCore/DebugInfo.cpp: DICompileUnit::getSubprograms(): Check numOperands().NAKAMURA Takumi2012-12-011-2/+3
| | | | | | | 2012-11-30-misched-dbg.ll had crashed. Then (MDNode)N was "!{}". I am not sure it would be ill-formed or not. llvm-svn: 169074
* MC/AsmParser: Avoid unnecessary use of SourceMgr::FindBufferForLoc()Daniel Dunbar2012-12-011-7/+21
| | | | | | | | - Each macro instantiation introduces a new buffer, and FindBufferForLoc() is linear, so previously macro instantiation could be N^2 for some pathological inputs. llvm-svn: 169073
* misched: Fix RegisterPressureTracker handling of DebugVals.Andrew Trick2012-12-015-20/+74
| | | | | | | Assertion failed: (TopRPTracker.getPos() == RegionBegin && "bad initial Top tracker"). rdar://12790302. llvm-svn: 169072
* misched: Fix the DAG builder to handle an undef operand at ExitSU.Andrew Trick2012-12-012-1/+28
| | | | | | | Assertion failed: (VNI && "No value to read by operand") rdar://12790267. llvm-svn: 169071
* misched: Fix LiveInterval update to better handle DebugVal.Andrew Trick2012-12-012-1/+55
| | | | | | | Assertion failed: (itr != mi2iMap.end() && "Instruction not found in maps.") rdar://12777252. llvm-svn: 169070
* misched: fix RegionBegin when DebugValues get shuffled to the top.Andrew Trick2012-12-012-0/+87
| | | | | | | | assert (RemainingInstrs == 0 && "Instruction count mismatch!") rdar://12776937. llvm-svn: 169069
* Simplify REG_SEQUENCE lowering.Jakob Stoklund Olesen2012-12-012-190/+72
| | | | | | | | | | | The TwoAddressInstructionPass takes the machine code out of SSA form by expanding REG_SEQUENCE instructions into copies. It is no longer necessary to rewrite the registers used by a REG_SEQUENCE instruction because the new coalescer algorithm can do it now. REG_SEQUENCE is just converted to a sequence of sub-register copies now. llvm-svn: 169067
* Update the emacs mode to recognize fadd, fsum, fmul, fdiv, frem, fcmp, icmpMichael Ilseman2012-12-011-3/+4
| | | | llvm-svn: 169064
* Add some first skeleton work for the DWARF5 Fission proposal. EmitEric Christopher2012-11-303-8/+145
| | | | | | | | | part of the compile unit CU and start separating out information into the various sections that will be pulled out later. WIP. llvm-svn: 169061
* Convert COPY instructions into KILLs if they have implicit defs.Jakob Stoklund Olesen2012-11-301-3/+17
| | | | | | | | | | | MachineCopyPropagation doesn't understand super-register liveness well enough to be able to remove implicit defs of super-registers. This fixes a problem in ARM/2012-01-26-CopyPropKills.ll that is exposed by an future TwoAddressInstructionPass change. The KILL instructions are removed before the machine code is emitted. llvm-svn: 169060
* Add support for fission attributes/forms/operations -> string.Eric Christopher2012-11-301-0/+16
| | | | llvm-svn: 169056
* Vim mode updated to recognize fast-math flagsMichael Ilseman2012-11-301-1/+1
| | | | llvm-svn: 169055
* Removed redundancy in wordingMichael Ilseman2012-11-301-1/+1
| | | | llvm-svn: 169053
* Clean up the documentation to have a common description area for fast-math ↵Michael Ilseman2012-11-301-115/+67
| | | | | | flags. llvm-svn: 169052
* Be more clear on what parts of code I own.Bill Wendling2012-11-301-1/+1
| | | | llvm-svn: 169050
* reversed the logic of the log2 detection routine to reduce the number of ↵Pedro Artigas2012-11-301-25/+29
| | | | | | nested ifs llvm-svn: 169049
* minor cleanupsNadav Rotem2012-11-301-8/+3
| | | | llvm-svn: 169048
* Fix a bug in APFloat.cpp: declare APFloat after fltSemantics itAlexey Samsonov2012-11-301-1/+3
| | | | | | | | | | | uses. APFloat::convert() takes the pointer to the fltSemantics variable, which is later accessed it in ~APFloat() desctructor. That is, semantics must still be alive at the moment we delete APFloat. Found by experimental AddressSanitizer use-after-scope checker. llvm-svn: 169047
* Add me as LTO code owner.Bill Wendling2012-11-301-0/+4
| | | | llvm-svn: 169046
* Replace r168930 with a more reasonable patch.Bill Wendling2012-11-304-78/+13
| | | | | | | | | | | The original patch removed a bunch of code that the SjLjEHPrepare pass placed into the entry block if all of the landing pads were removed during the CodeGenPrepare class. The more natural way of doing things is to run the CGP *before* we run the SjLjEHPrepare pass. Make it so! llvm-svn: 169044
* Addresses many style issues with prior checkin (r169025)Pedro Artigas2012-11-301-58/+44
| | | | llvm-svn: 169043
* Add a -time-compilations=<N> option to llc.Jakob Stoklund Olesen2012-11-301-0/+16
| | | | | | | | This causes llc to repeat the module compilation N times, making it possible to get more accurate information from -time-passes when compiling small modules. llvm-svn: 169040
* Aggregate pass execution time report by pass ID instead of pass instance.Jakob Stoklund Olesen2012-11-301-3/+3
| | | | | | | This avoids unidentified duplicates in the pass execution time report when a pass runs more than once in the pass manager pipeline. llvm-svn: 169039
* lit: Add a simple test suite for checking test runner parallelism.Daniel Dunbar2012-11-301-0/+23
| | | | llvm-svn: 169038
* test/CodeGen/PowerPC/vec_mul.ll: Add a triple. Thanks, Hal.Chad Rosier2012-11-301-3/+3
| | | | llvm-svn: 169026
* Add fast math inst combine X*log2(Y*0.5)-->X*log2(Y)-XPedro Artigas2012-11-301-0/+77
| | | | | | reviewed by Michael Ilseman <milseman@apple.com> llvm-svn: 169025
* Codegen failure for vmull with small vectorsSebastian Pop2012-11-302-13/+224
| | | | | | | | | | | | | | | | | | | | | | | | | Codegen was failing with an assertion because of unexpected vector operands when legalizing the selection DAG for a MUL instruction. The asserting code was legalizing multiplies for vectors of size 128 bits. It uses a custom lowering to try and detect cases where it can use a VMULL instruction instead of a VMOVL + VMUL. The code was looking for input operands to the MUL that had been sign or zero extended. If it found the extended operands it would drop the sign/zero extension and use the original vector size as input to a VMULL instruction. The code assumed that the original input vector was 64 bits so that after dropping the extension it would fit directly into a D register and could be used as an operand of a VMULL instruction. The input code that trigger the failure used a vector of <4 x i8> that was sign extended to <4 x i32>. It was not safe to drop the sign extension in this case because the original vector is only 32 bits wide. The fix is to insert a sign extension for the vector to reach the required 64 bit size. In this particular example, the vector would need to be sign extented to a <4 x i16>. llvm-svn: 169024
OpenPOWER on IntegriCloud