summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove a dead switch statement.Evan Cheng2008-11-031-17/+0
| | | | llvm-svn: 58644
* Minor code restructuring. No functionality change.Evan Cheng2008-11-031-6/+6
| | | | llvm-svn: 58643
* Fix some ppcf128 regressions: make ExpandFloatRes_LOADDale Johannesen2008-11-031-8/+8
| | | | | | | work correctly, and bring over a late change to ppcf128 SetCC handling. llvm-svn: 58642
* Implicit support for direct initialization of objects of class type, e.g.,Douglas Gregor2008-11-036-10/+147
| | | | | | X x(5, 7); llvm-svn: 58641
* Make VAARG promotion work correctly with large funkyDuncan Sands2008-11-031-19/+27
| | | | | | | | | | | | | | | | | sized integers like i129, and also reduce the number of assumptions made about how vaarg is implemented. This still doesn't work correctly for small integers like (eg) i1 on x86, since x86 passes each of them (essentially an i8) in a 4 byte stack slot, so the pointer needs to be advanced by 4 bytes not by 1 byte as now. But this is no longer a LegalizeTypes problem (it was also wrong in LT before): it is a bug in the operation expansion in LegalizeDAG: now LegalizeTypes turns an i1 vaarg into an i8 vaarg which would work fine if only the i8 vaarg was turned into correct code later. llvm-svn: 58635
* Clarify performance experiments description based on feedback fromDaniel Dunbar2008-11-031-1/+7
| | | | | | Eric C, thanks! llvm-svn: 58634
* Overload AddInteger on int/long/long long instead of on int/int64_t,Dan Gohman2008-11-032-8/+20
| | | | | | | to avoid overload ambiguities. This fixes build errors introduced by r58623. llvm-svn: 58632
* Ignore conditions that are outside the loop.Devang Patel2008-11-032-2/+51
| | | | llvm-svn: 58631
* add a period at the end of the comment, ignoring the fact that the comment ↵Andrew Lenharth2008-11-031-1/+1
| | | | | | would be hard pressed to be considered a sentence, but if it makes Bill happy... llvm-svn: 58630
* Standard conversion sequences now have a CopyConstructor field, toDouglas Gregor2008-11-037-46/+106
| | | | | | | | | | | | | | | cope with the case where a user-defined conversion is actually a copy construction, and therefore can be compared against other standard conversion sequences. While I called this a hack before, now I'm convinced that it's the right way to go. Compare overloads based on derived-to-base conversions that invoke copy constructors. Suppress user-defined conversions when attempting to call a user-defined conversion. llvm-svn: 58629
* Add binary encoding support for multiply instructions. Some blanks left to ↵Jim Grosbach2008-11-034-41/+105
| | | | | | fill in, but the basics are there. llvm-svn: 58626
* Turn floating point IVs into integer IVs where possible.Devang Patel2008-11-032-0/+167
| | | | | | | | This allows SCEV users to effectively calculate trip count. LSR later on transforms back integer IVs to floating point IVs later on to avoid int-to-float casts inside the loop. llvm-svn: 58625
* Refactor various TargetAsmInfo subclasses' TargetMachine members awayDan Gohman2008-11-0313-42/+36
| | | | | | adding a TargetMachine member to the base TargetAsmInfo class instead. llvm-svn: 58624
* Change how extended types are represented in MVTs. Instead of fiddlingDan Gohman2008-11-035-82/+255
| | | | | | | | | | | | | | | | | | | | | | | | bits, use a union of a SimpleValueType enum and a regular Type*. This increases the size of MVT on 64-bit hosts from 32 bits to 64 bits. In most cases, this doesn't add significant overhead. There are places in codegen that use arrays of MVTs, so these are now larger, but they're small in common cases. This eliminates restrictions on the size of integer types and vector types that can be represented in codegen. As the included testcase demonstrates, it's now possible to codegen very large add operations. There are still some complications with using very large types. PR2880 is still open so they can't be used as return values on normal targets, there are no libcalls defined for very large integers so operations like multiply and divide aren't supported. This also introduces a minimal tablgen Type library, capable of handling IntegerType and VectorType. This will allow parts of TableGen that don't depend on using SimpleValueType values to handle arbitrary integer and vector types. llvm-svn: 58623
* Add implicitly-declared default and copy constructors to C++ classes,Douglas Gregor2008-11-037-15/+194
| | | | | | | | | | | when appropriate. Conversions for class types now make use of copy constructors. I've replaced the egregious hack allowing class-to-class conversions with a slightly less egregious hack calling these conversions standard conversions (for overloading reasons). llvm-svn: 58622
* Comment fix.Daniel Dunbar2008-11-031-1/+1
| | | | llvm-svn: 58621
* Remove redundant inline keywords from functions defined withinDan Gohman2008-11-031-27/+27
| | | | | | class definitions. llvm-svn: 58620
* Ensure that we are checking only calls to the function we are interested in ↵Andrew Lenharth2008-11-031-2/+4
| | | | | | specializing llvm-svn: 58615
* Eliminate header dependency ASTContext -> TargetInfoDouglas Gregor2008-11-032-5/+8
| | | | llvm-svn: 58613
* Implement C++ DR 106 and C++ DR 540, both of which deal withDouglas Gregor2008-11-034-9/+69
| | | | | | | | | | | reference-collapsing. Implement diagnostic for formation of a reference to cv void. Drop cv-qualifiers added to a reference type when the reference type comes from a typedef. llvm-svn: 58612
* Testcase for recent llvm-gcc fixAnton Korobeynikov2008-11-031-0/+3
| | | | llvm-svn: 58611
* Connect ASTContext to TargetInfo when determining the size_t, ptrdiff_t, and ↵Douglas Gregor2008-11-032-10/+25
| | | | | | wchar_t types. Fixes recent breakage on Linux. llvm-svn: 58609
* Make VAARG work with x86 long double (which isDuncan Sands2008-11-032-3/+20
| | | | | | 10 bytes long, but is passed in 12/16 bytes). llvm-svn: 58608
* Fix <rdar://problem/6336774> clang block rewriter: Assertion failed: ↵Steve Naroff2008-11-032-0/+6
| | | | | | Offset+NumBytes <= size() && "Invalid region to erase!", file c:\cygwin\home\Administrator\llvm\to ols\clang\include\clang/Rewrite/RewriteRope.h, line 219. llvm-svn: 58607
* Make MachineFrameInfo::print not crash when no TargetFrameInfo is available.Matthijs Kooijman2008-11-031-1/+2
| | | | llvm-svn: 58606
* Fix PR3001: if we have an error parsing an initializer, make sure to removeChris Lattner2008-11-033-2/+28
| | | | | | | the designator corresponding to it, otherwise Sema and later parsing will get confused. llvm-svn: 58603
* privatize some methods.Chris Lattner2008-11-031-0/+3
| | | | llvm-svn: 58602
* Simplify the functions HtmlEsape and ShellEscape. We now properly print out ↵Ted Kremenek2008-11-031-8/+5
| | | | | | | | the following command line in the HTML output: scan-build gcc -x c /dev/null -c -Dfoo='"string abc"' Fixes <rdar://problem/6338651> llvm-svn: 58600
* Silence a compiler warning.Evan Cheng2008-11-031-1/+1
| | | | llvm-svn: 58598
* Add some notes for SCA.Zhongxing Xu2008-11-031-0/+31
| | | | llvm-svn: 58597
* Fix 80-col violations.Zhongxing Xu2008-11-031-2/+2
| | | | llvm-svn: 58596
* - Remove AnonTypedRegion, which is not to be used.Zhongxing Xu2008-11-032-53/+29
| | | | | | - Prepare AnonPointeeRegioin for later use. llvm-svn: 58595
* TypoNick Lewycky2008-11-031-1/+1
| | | | llvm-svn: 58594
* Replace explicit loop with utility function.Nick Lewycky2008-11-031-4/+2
| | | | llvm-svn: 58593
* Don't crash analyzing certain quadratics (addrec of {X,+,Y,+,1}).Nick Lewycky2008-11-032-0/+26
| | | | | | We're still waiting on code that actually analyzes them properly. llvm-svn: 58592
* Revert my last patch until I consult with Evan about it.Owen Anderson2008-11-031-10/+0
| | | | llvm-svn: 58591
* Source ranges for named cast diagnostics.Sebastian Redl2008-11-022-49/+63
| | | | llvm-svn: 58570
* Changes from Duncan's review:Nick Lewycky2008-11-022-9/+39
| | | | | | | | * merge two weak functions by making them both alias a third non-weak fn * don't reimplement CallSite::hasArgument * whitelist the safe linkage types llvm-svn: 58568
* Testcase for PR2691Anton Korobeynikov2008-11-021-0/+5
| | | | llvm-svn: 58567
* Add header files to CMake build solution. It use globing so it doesn't need ↵Cedric Venet2008-11-021-2/+16
| | | | | | to be manually maintained, but it won't automatically detect a new header. I think this is a good compromise for the header files, since there presence in the solution is just an help for the user. Moreover, a new header is often introduced with a new cpp source file which need a makefile change, which will regenerate the solution and detect the new header. llvm-svn: 58566
* Add function side-effect test cast.Zhongxing Xu2008-11-021-0/+7
| | | | llvm-svn: 58565
* 1. When a pointer to struct is used as an argument, GRSimpleVals::EvalCall()Zhongxing Xu2008-11-021-18/+23
| | | | | | | | | | | sets the whole struct to Unknown. Then we cannot assume the V passed to BindStruct() is always a CompoundVal. When it is an UnknownVal, we call BindStructToVal(UnknownVal). 2. Change the signature of InitializeStructToUndefined() to BindStructToVal() to reuse the code. llvm-svn: 58564
* Silence a warningAnton Korobeynikov2008-11-021-4/+6
| | | | llvm-svn: 58563
* Add defined in if().Zhongxing Xu2008-11-021-1/+1
| | | | llvm-svn: 58562
* Get this building on 64 bit machines (error:Duncan Sands2008-11-021-5/+5
| | | | | | | cast from ‘const llvm::PointerType*’ to ‘unsigned int’ loses precision). llvm-svn: 58561
* Don't do pre-splitting if doing so would create a value join that did notOwen Anderson2008-11-021-0/+10
| | | | | | | | | exist before. Updating the live intervals in that care is tricky in the general case. Evan, if you see a tighter guard condition for this, let me know. llvm-svn: 58560
* CMake: added a source file.Oscar Fuentes2008-11-021-0/+1
| | | | llvm-svn: 58559
* Whoops! Remove test Output/ directory.Nick Lewycky2008-11-020-0/+0
| | | | llvm-svn: 58558
* Add a new MergeFunctions pass. It finds identical functions and merges them.Nick Lewycky2008-11-026-3/+429
| | | | | | | | This triggers only 60 times in llvm-test (look at .llvm.bc, not .linked.rbc) and so it probably wont be turned on by default. Also, may of those are likely to go away when PR2973 is fixed. llvm-svn: 58557
* More fallout from r58501: primary fix is some more corrections to make Eli Friedman2008-11-022-9/+20
| | | | | | | | | | | | | | | | | the types for size_t and ptrdiff_t more accurate. I think all of these are correct, but please compare the defines for __PTRDIFF_TYPE__ and __SIZE_TYPE__ to gcc to double-check; this particularly applies to those on BSD variants, since I'm not sure what they do here; I assume here that they're the same as on Linux. Fixes wchar_t to be "int", not "unsigned int" (which I think is correct on everything but Windows). Fixes ptrdiff_t to be "int" rather than "short" on PIC16; "short" is an somewhat strange choice because it normally gets promoted, and it's not consistent with the choice for size_t. llvm-svn: 58556
OpenPOWER on IntegriCloud