summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Issue diagnostics if more than one declaration in objectove-c's foreach-stmt ↵Fariborz Jahanian2008-01-073-1/+44
| | | | | | header. llvm-svn: 45708
* Update the comment on scalar to vector to be a bit more clear.Nate Begeman2008-01-071-2/+2
| | | | llvm-svn: 45707
* minor cleanup.Chris Lattner2008-01-071-2/+1
| | | | llvm-svn: 45706
* Update test to catch recent x86 insert regression and improvementsNate Begeman2008-01-071-0/+3
| | | | llvm-svn: 45705
* Small cleanup for handling of type/parameter attributeDuncan Sands2008-01-075-29/+28
| | | | | | incompatibility. llvm-svn: 45704
* Unbreak x86-32 darwin long double!Duncan Sands2008-01-071-3/+2
| | | | llvm-svn: 45703
* Fix long double support on x86-32 linux.Duncan Sands2008-01-071-1/+1
| | | | llvm-svn: 45701
* Pruning includes.Gordon Henriksen2008-01-072-14/+0
| | | | llvm-svn: 45700
* Operand 1 should be a register. We don't care if it's a preg, vreg, or 0.Bill Wendling2008-01-071-13/+9
| | | | llvm-svn: 45699
* add a noteChris Lattner2008-01-071-0/+7
| | | | llvm-svn: 45698
* remove #includageChris Lattner2008-01-073-5/+2
| | | | llvm-svn: 45697
* split TargetInstrDesc out into its own header file.Chris Lattner2008-01-072-394/+415
| | | | llvm-svn: 45696
* rename TargetInstrDescriptor -> TargetInstrDesc.Chris Lattner2008-01-0742-233/+234
| | | | | | | Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. llvm-svn: 45695
* remove a dead method.Chris Lattner2008-01-071-7/+0
| | | | llvm-svn: 45694
* simplify some code.Chris Lattner2008-01-071-10/+13
| | | | llvm-svn: 45693
* Rename all the M_* flags to be namespace qualified enums, and switch Chris Lattner2008-01-076-82/+91
| | | | | | | | all clients over to using predicates instead of these flags directly. These are now private values which are only to be used to statically initialize the tables. llvm-svn: 45692
* use predicate.Chris Lattner2008-01-071-1/+1
| | | | llvm-svn: 45691
* add more and significantly better comments to the rest of the machineinstrChris Lattner2008-01-073-70/+116
| | | | | | | flags that can be set. Add predicates for the ones lacking it, and switch some clients over to using the predicates instead of Flags directly. llvm-svn: 45690
* simplify some code using new predicatesChris Lattner2008-01-072-24/+21
| | | | llvm-svn: 45689
* add some mroe comments, add a isImplicitDef() method, add Chris Lattner2008-01-071-18/+68
| | | | | | isConditionalBranch() and isUnconditionalBranch() methods. llvm-svn: 45688
* rename hasVariableOperands() -> isVariadic(). Add some comments.Chris Lattner2008-01-078-22/+30
| | | | | | | Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. llvm-svn: 45687
* Move M_* flags down in the file. Move SchedClass up in the Chris Lattner2008-01-072-60/+61
| | | | | | | TargetInstrDescriptor class and shrink to 16-bits, saving a word in TargetInstrDescriptor. Add some comments. llvm-svn: 45686
* remove a dead field.Chris Lattner2008-01-071-1/+0
| | | | llvm-svn: 45685
* the name field of instructions is never set to a non-empty string, Chris Lattner2008-01-073-17/+3
| | | | | | just unconditionally use the def name of the instruction. llvm-svn: 45684
* no need to explicitly clear these fields.Chris Lattner2008-01-072-2/+0
| | | | llvm-svn: 45683
* Fix typoNate Begeman2008-01-071-1/+1
| | | | llvm-svn: 45682
* Removing a leaked file.Gordon Henriksen2008-01-071-6/+1
| | | | llvm-svn: 45681
* Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptorChris Lattner2008-01-0718-123/+115
| | | | llvm-svn: 45680
* remove MachineOpCode typedef.Chris Lattner2008-01-078-14/+8
| | | | llvm-svn: 45679
* remove some uses of MachineOpCode, move getSchedClass Chris Lattner2008-01-072-22/+22
| | | | | | into TargetInstrDescriptor from TargetInstrInfo. llvm-svn: 45678
* Add predicates methods to TargetOperandInfo, and switch all clients Chris Lattner2008-01-076-29/+42
| | | | | | | over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. llvm-svn: 45677
* Setting GlobalDirective in TargetAsmInfo by default rather thanGordon Henriksen2008-01-075-1/+240
| | | | | | | providing a misleading facility. It's used once in the MIPS backend and hardcoded as "\t.globl\t" everywhere else. llvm-svn: 45676
* Deleting an empty file. Thanks, /usr/bin/patch!Gordon Henriksen2008-01-071-0/+0
| | | | llvm-svn: 45675
* Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflectsChris Lattner2008-01-0731-226/+154
| | | | | | | | | | | | | | | that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
* Update CodeGen for MRegisterInfo --> TargetInstrInfo changes.Owen Anderson2008-01-075-12/+14
| | | | llvm-svn: 45673
* Move even more functionality from MRegisterInfo into TargetInstrInfo.Owen Anderson2008-01-0730-1630/+1599
| | | | | | Some day I'll get it all moved over... llvm-svn: 45672
* Ammending r45669 with a missing file.Gordon Henriksen2008-01-071-4/+23
| | | | llvm-svn: 45671
* With this patch, the LowerGC transformation becomes theGordon Henriksen2008-01-077-373/+478
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ShadowStackCollector, which additionally has reduced overhead with no sacrifice in portability. Considering a function @fun with 8 loop-local roots, ShadowStackCollector introduces the following overhead (x86): ; shadowstack prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl $___gc_fun, 20(%esp) movl $0, 24(%esp) movl $0, 28(%esp) movl $0, 32(%esp) movl $0, 36(%esp) movl $0, 40(%esp) movl $0, 44(%esp) movl $0, 48(%esp) movl $0, 52(%esp) movl %ecx, 16(%esp) leal 16(%esp), %ecx movl %ecx, (%eax) ; shadowstack loop overhead (none) ; shadowstack epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; shadowstack metadata .align 3 ___gc_fun: # __gc_fun .long 8 .space 4 In comparison to LowerGC: ; lowergc prologue movl L_llvm_gc_root_chain$non_lazy_ptr, %eax movl (%eax), %ecx movl %ecx, 48(%esp) movl $8, 52(%esp) movl $0, 60(%esp) movl $0, 56(%esp) movl $0, 68(%esp) movl $0, 64(%esp) movl $0, 76(%esp) movl $0, 72(%esp) movl $0, 84(%esp) movl $0, 80(%esp) movl $0, 92(%esp) movl $0, 88(%esp) movl $0, 100(%esp) movl $0, 96(%esp) movl $0, 108(%esp) movl $0, 104(%esp) movl $0, 116(%esp) movl $0, 112(%esp) ; lowergc loop overhead leal 44(%esp), %eax movl %eax, 56(%esp) leal 40(%esp), %eax movl %eax, 64(%esp) leal 36(%esp), %eax movl %eax, 72(%esp) leal 32(%esp), %eax movl %eax, 80(%esp) leal 28(%esp), %eax movl %eax, 88(%esp) leal 24(%esp), %eax movl %eax, 96(%esp) leal 20(%esp), %eax movl %eax, 104(%esp) leal 16(%esp), %eax movl %eax, 112(%esp) ; lowergc epilogue movl 48(%esp), %edx movl %edx, (%ecx) ; lowergc metadata (none) llvm-svn: 45670
* Enabling the target-independent garbage collection infrastructure by hooking itGordon Henriksen2008-01-077-11/+71
| | | | | | | | | up to the various compiler pipelines. This doesn't actually add support for any GC algorithms, which means it temporarily breaks a few tests. To be fixed shortly. llvm-svn: 45669
* The pic base can't be duplicated.Chris Lattner2008-01-061-1/+1
| | | | llvm-svn: 45668
* rename isLoad -> isSimpleLoad due to evan's desire to have such a predicate.Chris Lattner2008-01-0626-61/+72
| | | | llvm-svn: 45667
* rearrange some code.Chris Lattner2008-01-061-11/+16
| | | | llvm-svn: 45666
* some simplifications/cleanups to ?: sema.Chris Lattner2008-01-061-14/+21
| | | | llvm-svn: 45665
* Emit warnings like "dereferencing void pointer" instead of trying to Chris Lattner2008-01-062-4/+3
| | | | | | pretty print the type name for void. llvm-svn: 45664
* Modify Makefile.rules to allow makefiles to prepend to C.Flags andGordon Henriksen2008-01-062-10/+11
| | | | | | fiends. Change Makefile.ocaml to not touch CFLAGS. llvm-svn: 45663
* improve description of alignment, patch by Alain Frisch.Chris Lattner2008-01-061-0/+20
| | | | llvm-svn: 45662
* Fix typo noticed by 'Danny' in PR1901Chris Lattner2008-01-061-1/+1
| | | | llvm-svn: 45661
* back out accidental commit.Chris Lattner2008-01-061-6/+0
| | | | llvm-svn: 45660
* fix an accidental commit that broke all the testers :(Chris Lattner2008-01-061-1/+0
| | | | llvm-svn: 45659
* The transform that tries to turn calls to bitcast functions intoDuncan Sands2008-01-066-90/+97
| | | | | | | | | direct calls bails out unless caller and callee have essentially equivalent parameter attributes. This is illogical - the callee's attributes should be of no relevance here. Rework the logic, which incidentally fixes a crash when removed arguments have attributes. llvm-svn: 45658
OpenPOWER on IntegriCloud