summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/CBackend
Commit message (Collapse)AuthorAgeFilesLines
...
* Rewrite a bunch of the CBE's inline asm code, giving it theChris Lattner2008-06-041-45/+83
| | | | | | ability to handle indirect input operands. This fixes PR2407. llvm-svn: 51952
* Implement CBE support for first-class structs and array values,Dan Gohman2008-06-021-18/+77
| | | | | | | | | | | | | | | and insertvalue and extractvalue instructions. First-class array values are not trivial because C doesn't support them. The approach I took here is to wrap all arrays in structs. Feedback is welcome. The 2007-01-15-NamedArrayType.ll test needed to be modified because it has a "not grep" for a string that now exists, because array types now have associated struct types, and those struct types have names. llvm-svn: 51881
* Fix the CBE's handling of instructions whose result is an i1. Previously,Chris Lattner2008-05-311-20/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | we did not truncate the value down to i1 with (x&1). This caused a problem when the computation of x was nontrivial, for example, "add i1 1, 1" would return 2 instead of 0. This makes the testcase compile into: ... llvm_cbe_t = (((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u))&1); llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t)); ... instead of: ... llvm_cbe_t = ((llvm_cbe_r == 0u) + (llvm_cbe_r == 0u)); llvm_cbe_u = (((unsigned int )(bool )llvm_cbe_t)); ... This fixes a miscompilation of mediabench/adpcm/rawdaudio/rawdaudio and 403.gcc with the CBE, regressions from LLVM 2.2. Tanya, please pull this into the release branch. llvm-svn: 51813
* Fix some constructs that gcc-4.4 warns about.Duncan Sands2008-05-271-2/+3
| | | | llvm-svn: 51591
* Tweak how ConstantFP80Ty constants are outputDuncan Sands2008-05-241-1/+1
| | | | | | so that gcc doesn't warn about them. llvm-svn: 51529
* Fix another isFirstClassType that now needs to be isSingleValueType.Dan Gohman2008-05-231-1/+1
| | | | | | This fixes recent CBE regressions. llvm-svn: 51483
* fix an off-by-one error in my previous patch, don't treat the callee as a ↵Chris Lattner2008-05-221-10/+9
| | | | | | incoming arg. llvm-svn: 51422
* Add support for multiple-return values in inline asm. This shouldChris Lattner2008-05-221-34/+42
| | | | | | | get inline asm working as well as it did previously with the CBE with the new MRV support for inline asm. llvm-svn: 51420
* Add CommonLinkage; currently tentative definitionsDale Johannesen2008-05-141-1/+7
| | | | | | | | | | are represented as "weak", but there are subtle differences in some cases on Darwin, so we need both. The intent is that "common" will behave identically to "weak" unless somebody changes their target to do something else. No functional change as yet. llvm-svn: 51118
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-3/+3
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Initial CBE support for multiple return values.Dan Gohman2008-04-231-0/+30
| | | | llvm-svn: 50187
* Suppress the 128-bit integer typedef on 32-bit targets, becauseDan Gohman2008-04-021-6/+12
| | | | | | it causes compile errors. llvm-svn: 49122
* Partial CBackend support for 128-bit integers. This is neededDan Gohman2008-04-021-2/+9
| | | | | | | now that llvm-gcc is lowering appropriately-sized struct returns to i128 on x86-64. llvm-svn: 49109
* Add explicit keywords.Dan Gohman2008-03-251-1/+1
| | | | llvm-svn: 48801
* A quick nm audit turned up several fixed tables and objects that wereDan Gohman2008-03-251-1/+1
| | | | | | | marked read-write. Use const so that they can be allocated in a read-only segment. llvm-svn: 48800
* Reimplement the parameter attributes support, phase #1. hilights:Chris Lattner2008-03-121-20/+19
| | | | | | | | | | | | | | | | | | | | | | | 1. There is now a "PAListPtr" class, which is a smart pointer around the underlying uniqued parameter attribute list object, and manages its refcount. It is now impossible to mess up the refcount. 2. PAListPtr is now the main interface to the underlying object, and the underlying object is now completely opaque. 3. Implementation details like SmallVector and FoldingSet are now no longer part of the interface. 4. You can create a PAListPtr with an arbitrary sequence of ParamAttrsWithIndex's, no need to make a SmallVector of a specific size (you can just use an array or scalar or vector if you wish). 5. All the client code that had to check for a null pointer before dereferencing the pointer is simplified to just access the PAListPtr directly. 6. The interfaces for adding attrs to a list and removing them is a bit simpler. Phase #2 will rename some stuff (e.g. PAListPtr) and do other less invasive changes. llvm-svn: 48289
* gcc likes things spelled correctlyAndrew Lenharth2008-03-051-1/+1
| | | | llvm-svn: 47981
* s/isReturnStruct()/hasStructRetAttr()/gDevang Patel2008-03-031-4/+4
| | | | llvm-svn: 47857
* add support for lvsl, fixing PR1481Chris Lattner2008-03-021-0/+9
| | | | llvm-svn: 47825
* add support for the sse.cmp.* intrinsics, which fixes sse.isamax with the CBE.Chris Lattner2008-03-021-1/+39
| | | | llvm-svn: 47824
* refactor intrinsic handling code out into its own method.Chris Lattner2008-03-021-108/+115
| | | | llvm-svn: 47823
* fix printing of undef vectors, this fixes "simple" and "build" in ↵Chris Lattner2008-03-021-1/+6
| | | | | | | | UnitTests/Vector. Now they all pass. llvm-svn: 47820
* insertelement got the wrong operands.Chris Lattner2008-03-021-2/+2
| | | | llvm-svn: 47819
* Several changes:Chris Lattner2008-03-021-82/+109
| | | | | | | | | | * Simplify handling of byval, making it easier to understand and more consistent. This fixes PR2065. * Clean up and simplify handling of GEPs. I can actually understand it now! * Implement support for GEP'ing into vectors, this fixes SingleSource/UnitTests/Vector/build2 among others. llvm-svn: 47818
* Fix a bug I introduced in constant array and constant vector handling.Chris Lattner2008-03-021-2/+2
| | | | llvm-svn: 47816
* implement shufflevector.Chris Lattner2008-03-021-4/+38
| | | | llvm-svn: 47815
* implement extractelement.Chris Lattner2008-03-021-2/+17
| | | | llvm-svn: 47812
* implement insertelement.Chris Lattner2008-03-021-1/+17
| | | | llvm-svn: 47811
* respect isSigned for vector types, fixing sdiv of vectors etc.Chris Lattner2008-03-021-2/+2
| | | | llvm-svn: 47810
* print the attribute in the right place, this fixes function returning vectors.Chris Lattner2008-03-021-2/+2
| | | | llvm-svn: 47809
* vector types are simple types. This fixes div/rem of vectors.Chris Lattner2008-03-021-10/+11
| | | | llvm-svn: 47807
* Print vector types appropriately. This gets basic vector code workingChris Lattner2008-03-021-2/+6
| | | | | | (PR1126) llvm-svn: 47806
* rename PT -> VT for VectorTypes.Chris Lattner2008-03-021-8/+7
| | | | llvm-svn: 47805
* Print i32/i64 integer constants as 1u instead of ((unsigned int)1). Chris Lattner2008-03-021-21/+22
| | | | | | Use dyn_cast better. llvm-svn: 47804
* Avoid collisions in value names.Lauro Ramos Venancio2008-02-281-3/+5
| | | | llvm-svn: 47725
* Split ParameterAttributes.h, putting the complicatedDale Johannesen2008-02-221-1/+1
| | | | | | | stuff into ParamAttrsList.h. Per feedback from ParamAttrs changes. llvm-svn: 47504
* Temporarily backing out r47337. It breaks a number of CBE tests.Evan Cheng2008-02-201-5/+7
| | | | llvm-svn: 47385
* Remove bunch of gcc 4.3-related warnings from TargetAnton Korobeynikov2008-02-201-1/+1
| | | | llvm-svn: 47369
* fix some byval problems in the cbe. Closes PR2065Andrew Lenharth2008-02-191-7/+5
| | | | llvm-svn: 47337
* I cannot find a libgcc function for this builtin. Therefor expanding it to ↵Andrew Lenharth2008-02-161-0/+4
| | | | | | a noop (which is how it use to be treated). If someone who knows the x86 backend better than me could tell me how to get a lock prefix on an instruction, that would be nice to complete x86 support. llvm-svn: 47213
* CBackend: Implement unaligned load/store.Lauro Ramos Venancio2008-02-011-14/+35
| | | | llvm-svn: 46646
* Indirect call with byval parameter requires a cast first.Evan Cheng2008-01-121-6/+17
| | | | llvm-svn: 45911
* Add support for NetBSD, patch by Krister Walfridsson!Chris Lattner2008-01-121-1/+1
| | | | llvm-svn: 45902
* More cbe byval fixes.Evan Cheng2008-01-111-13/+25
| | | | llvm-svn: 45891
* Some C backend ByVal parameter attribute support. Not yet complete.Evan Cheng2008-01-111-3/+30
| | | | llvm-svn: 45864
* A couple of obvious off-by-one bugs.Evan Cheng2008-01-111-4/+7
| | | | llvm-svn: 45852
* Enabling the target-independent garbage collection infrastructure by hooking itGordon Henriksen2008-01-071-1/+3
| | | | | | | | | 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
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-292-4/+4
| | | | llvm-svn: 45418
* remove attribution from lib Makefiles.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45415
* Fix silly typo in the FP CEP handling.Anton Korobeynikov2007-12-211-0/+1
| | | | llvm-svn: 45300
OpenPOWER on IntegriCloud