summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Start inferring side effect information more aggressively, and fix many bugs ↵Chris Lattner2008-01-1010-102/+192
| | | | | | | | | | | | | | in the x86 backend where instructions were not marked maystore/mayload, and perf issues where instructions were not marked neverHasSideEffects. It would be really nice if we could write patterns for copy instructions. I have audited all the x86 instructions down to MOVDQAmr. The flags on others and on other targets are probably not right in all cases, but no clients currently use this info that are enabled by default. llvm-svn: 45829
* Clearify the meaning of immutable StackObject.Evan Cheng2008-01-101-3/+3
| | | | llvm-svn: 45828
* Fix a crash on code like: let x = 1 {xChris Lattner2008-01-101-1/+4
| | | | llvm-svn: 45827
* rename X86InstrX86-64.td -> X86Instr64bit.tdChris Lattner2008-01-102-5/+5
| | | | llvm-svn: 45826
* add SDNPSideEffect node property declarationChris Lattner2008-01-101-0/+1
| | | | llvm-svn: 45825
* remove explicit sets of 'neverHasSideEffects' that can now be Chris Lattner2008-01-106-13/+12
| | | | | | inferred from the instr patterns. llvm-svn: 45824
* if an instr lacks a pattern, assume it has side effects (unless never has ↵Chris Lattner2008-01-101-1/+4
| | | | | | s-e is true). llvm-svn: 45823
* start inferring 'no side effects'.Chris Lattner2008-01-104-56/+62
| | | | llvm-svn: 45822
* get def use info more correct.Chris Lattner2008-01-107-11/+19
| | | | llvm-svn: 45821
* Added some text about the ccc script provided by Sanghyeon Seo.Ted Kremenek2008-01-101-0/+24
| | | | llvm-svn: 45820
* Infer mayloadChris Lattner2008-01-101-3/+13
| | | | llvm-svn: 45819
* add SDNPMayLoad to the 'load' sdnode definition. This is enough to get all ↵Chris Lattner2008-01-101-1/+3
| | | | | | | | the x86 instructions (with patterns) that load memory marked, for example. llvm-svn: 45818
* realize that instructions who match intrinsics that read memory read memory.Chris Lattner2008-01-103-3/+15
| | | | | | Also, instructions with any nodes that are SDNPMayLoad also read memory. llvm-svn: 45817
* verify that the frame index is immutable before remat'ing (still disabled)Chris Lattner2008-01-101-7/+10
| | | | | | or being side-effect free. llvm-svn: 45816
* Don't use LiveVariables::VarInfo::DefInst.Owen Anderson2008-01-101-1/+8
| | | | llvm-svn: 45815
* Codegen improvement has reduced one spill.Evan Cheng2008-01-101-1/+1
| | | | llvm-svn: 45814
* Mark byval parameter stack objects mutable for now.Evan Cheng2008-01-101-7/+8
| | | | llvm-svn: 45813
* Add a isImmutable bit to StackObject. Fixed stack objects are immutable (in ↵Evan Cheng2008-01-101-5/+18
| | | | | | the function) unless specified otherwise. llvm-svn: 45812
* Emit unused EH frames for weak definitions on Darwin,Dale Johannesen2008-01-105-14/+31
| | | | | | | because assembler/linker can't cope with weak absolutes. PR 1880. llvm-svn: 45811
* add support for the GCC -include option.Chris Lattner2008-01-101-2/+21
| | | | llvm-svn: 45810
* Compiler driverSeo Sanghyeon2008-01-101-0/+95
| | | | llvm-svn: 45809
* Fix some 80 col violationsChris Lattner2008-01-101-17/+12
| | | | llvm-svn: 45808
* Ted apparently likes crazy whitespace at the end of line. Crush his spirit byChris Lattner2008-01-101-1/+1
| | | | | | removing them, fitting the file into 80 columns. :) llvm-svn: 45807
* Put return type of synthesize method on same line as method declaration, ↵Fariborz Jahanian2008-01-101-2/+2
| | | | | | space after method declaration header. llvm-svn: 45806
* Get rid of all uses of LiveVariables::VarInfo::DefInst in favor of the ↵Owen Anderson2008-01-101-58/+66
| | | | | | | | equivalent API from MachineRegisterInfo. Once all clients are switched over, the former will be going away. llvm-svn: 45805
* provide def_* and use_* iterators in addition to reg_* iterators.Chris Lattner2008-01-101-12/+51
| | | | | | | The first only returns definitions of a register, the second only returns uses, the third returns both. llvm-svn: 45803
* Added "InfeasibleEdge" to represent an infeasible state transition.Ted Kremenek2008-01-101-2/+13
| | | | llvm-svn: 45802
* Add more comments explaining the basics of how the decision of when to ↵Owen Anderson2008-01-101-7/+37
| | | | | | | | rename and when to insert copies is made. llvm-svn: 45799
* Do not use the stack pointer directly, issue a copyfromreg instead. ↵Evan Cheng2008-01-101-1/+1
| | | | | | Otherwise we can end up with something like ADD32ri %esp, x which two-address pass won't like. llvm-svn: 45798
* Get rid of the isKillInst predicate. LiveVariables already provides this ↵Owen Anderson2008-01-101-14/+10
| | | | | | information. llvm-svn: 45797
* Fix PR1845 and rdar://5676945. Generic vectors smallerChris Lattner2008-01-102-19/+23
| | | | | | | | | | | | | | than hardware supported type will be scalarized, so we can infer their alignment from that info. We now codegen pr1845 into: _boolVectorSelect: lbz r2, 0(r3) stb r2, -16(r1) blr llvm-svn: 45796
* new testcase for PR1845Chris Lattner2008-01-101-0/+11
| | | | llvm-svn: 45795
* Pass rewritten output to 'clang' for verification.Fariborz Jahanian2008-01-104-4/+4
| | | | llvm-svn: 45794
* Allow messaging expression as foreach's collection expression.Fariborz Jahanian2008-01-105-13/+61
| | | | llvm-svn: 45793
* Remove comments that do not correspond to anything after recent refactoring.Evan Cheng2008-01-101-41/+28
| | | | llvm-svn: 45792
* Copies need to be inserted before the first terminator, not at the end of ↵Owen Anderson2008-01-101-2/+2
| | | | | | the block. llvm-svn: 45791
* Add a FIXME to commit r45784. Thanks mrs!Steve Naroff2008-01-091-1/+2
| | | | llvm-svn: 45790
* Fix Sema::ActOnDeclarator() to call MergeFunctionDecl for function decls ↵Steve Naroff2008-01-092-8/+13
| | | | | | that aren't in scope. Since C functions are in a flat namespace, we need to give them special treatment (when compared with variables and typedefs). llvm-svn: 45789
* Renamed various traits and classes. Added "Infeasible" bit to ExplodedNodeImplTed Kremenek2008-01-092-21/+36
| | | | | | | | so that nodes can be marked as representing an infeasible program point. This flag lets the path-sensitive solver know that no successors should be generated for such nodes. llvm-svn: 45788
* Special copy SUnit's do not have SDNode's.Evan Cheng2008-01-092-2/+34
| | | | llvm-svn: 45787
* Renamed Stmt***Edge and ***StmtEdge (where *** = "Stmt" or "Blk") classes toTed Kremenek2008-01-091-21/+71
| | | | | | | | | | BExpr*** and ***BExpr respectively. These edges represent program locations between the entrance/exit of a block and Block-level Expressions. Also added ***SExpr and SExpr*** ProgramEdges to represent the locations in the program between the evaluation of subexpressions and block-level expressions. llvm-svn: 45786
* Removed some files related to the path-sensitive solver as part of someTed Kremenek2008-01-093-455/+0
| | | | | | code restructuring. (new files will be introduced shortly) llvm-svn: 45785
* Fix ASTContext::typesAreCompatible to allow for int/enum compatibility (C99 ↵Steve Naroff2008-01-093-3/+17
| | | | | | | | 6.7.2.2p4). Fix Sema::MergeFunctionDecl to allow for function type compatibility (by using the predicate on ASTContext). Function types don't have to be identical to be compatible... llvm-svn: 45784
* Clean up StrongPHIElimination a bit, and add some more comments to the ↵Owen Anderson2008-01-091-6/+46
| | | | | | | | internal structures. There's still more work to do on this front. llvm-svn: 45783
* Teach Sema::ActOnCompoundLiteral about constraint C99 6.5.2.5p3.Steve Naroff2008-01-092-3/+8
| | | | llvm-svn: 45782
* Fix compile failures with g++-4.3.Duncan Sands2008-01-092-0/+2
| | | | llvm-svn: 45781
* many cleanups and fixed, contributed by Sam BishopChris Lattner2008-01-091-39/+36
| | | | llvm-svn: 45780
* Fix isIntegerConstantExpr to compare against zero for casts to bool instead ofChris Lattner2008-01-091-1/+12
| | | | | | | | | | | | | | truncating. This allows us to compile: void foo() { static _Bool foo = 4; } into: @foo1 = internal global i8 1 instead of: @foo1 = internal global i8 4 llvm-svn: 45779
* implement proper support for _Bool in memory, which is usually i8, not i1.Chris Lattner2008-01-096-8/+48
| | | | | | This fixes a crash reported by Seo Sanghyeon llvm-svn: 45778
* Type-cast RHS of assignment to prevent warning compiling rewritten foreach code.Fariborz Jahanian2008-01-092-5/+40
| | | | llvm-svn: 45777
OpenPOWER on IntegriCloud