Commit Graph

49777 Commits

Author SHA1 Message Date
Richard Osborne 5923f60099 Add contributer information for XCore backend to CREDITS.TXT
llvm-svn: 58844
2008-11-07 12:41:14 +00:00
Richard Osborne 7b2eae9bdd Add XCore backend to CMake build.
llvm-svn: 58843
2008-11-07 12:37:45 +00:00
Argyrios Kyrtzidis f2ad9491f5 Shut off an unsigned/signed comparison warning for GCC.
llvm-svn: 58842
2008-11-07 12:15:16 +00:00
Richard Osborne 86d68a492a Add basic test for XCore backend
llvm-svn: 58841
2008-11-07 11:24:12 +00:00
Richard Osborne 3219819ffe Fix compile warnings.
llvm-svn: 58840
2008-11-07 11:21:09 +00:00
Scott Michel 3395d4485d CellSPU: Ensure that C strings are always put in the .rodata section
llvm-svn: 58839
2008-11-07 11:06:44 +00:00
Richard Osborne ca08e0645a Add XCore backend.
llvm-svn: 58838
2008-11-07 10:59:00 +00:00
Zhongxing Xu 2c677c34d5 Finish the implementation of VisitCompoundLiteralExpr. As VisitInitListExpr is
available, things get much simplified.

One addition is that CompoundLiteralExpr can appear both in rvalue and lvalue
context.

llvm-svn: 58837
2008-11-07 10:38:33 +00:00
Evan Cheng 7095cd2af2 Jump table JIT support. Work in progress.
llvm-svn: 58836
2008-11-07 09:06:08 +00:00
Evan Cheng 00203155ad Jump tables may be emitted by target.
llvm-svn: 58835
2008-11-07 09:02:17 +00:00
Evan Cheng a2d1605ac3 Jump table relocation addresses may be resolved by target.
llvm-svn: 58834
2008-11-07 09:01:15 +00:00
Zhongxing Xu e79a4e667b Make the assertion real.
llvm-svn: 58833
2008-11-07 08:57:30 +00:00
Scott Michel 34d93f8572 Teach CellSPU about ELF sections and new section emitter classes.
NB: This is likely to need more work.
llvm-svn: 58832
2008-11-07 04:36:25 +00:00
Ted Kremenek 3391cb00fc Patch by Nikita Zhuk: Add TranslationUnitActions to AnalysisConsumer.
llvm-svn: 58831
2008-11-07 02:09:25 +00:00
Bill Wendling b9656df4ac BCUI + 1 doesn't work. Use next instead.
llvm-svn: 58830
2008-11-07 01:59:41 +00:00
Bill Wendling 1af23b035f Refactor code that adjusts the offsets of stack objects.
llvm-svn: 58829
2008-11-07 01:48:58 +00:00
Evan Cheng 98dc53e926 Encode misc arithmetic instructions.
llvm-svn: 58828
2008-11-07 01:41:35 +00:00
Dale Johannesen a129e0b826 Testcase for testb optimization.
llvm-svn: 58827
2008-11-07 01:30:18 +00:00
Devang Patel b8e0d59ceb Handle (delete) dbg intrinsics while promoting alloca.
llvm-svn: 58826
2008-11-07 01:30:07 +00:00
Dale Johannesen 7aad542d35 When we're doing a compare of load-AND-constant to 0
(e.g. a bitfield test) narrow the load as much as possible.
The has the potential to avoid unnecessary partial-word
load-after-store conflicts, which cause stalls on several targets.
Also a size win on x86 (testb vs testl).

llvm-svn: 58825
2008-11-07 01:28:02 +00:00
Bill Wendling eb4268d72f - Modify the stack protector algorithm so that the stack slot is allocated in
LLVM IR code and not in the selection DAG ISel. This is a cleaner solution.

- Fix the heuristic for determining if protectors are necessary. The previous
  one wasn't checking the proper type size.

llvm-svn: 58824
2008-11-07 01:23:58 +00:00
Bill Wendling 87d0746e71 Remove unneeded header file.
llvm-svn: 58823
2008-11-06 23:56:59 +00:00
Bill Wendling a0826e1855 Don't build a vector of returns. Just modify the Function in the loop.
llvm-svn: 58822
2008-11-06 23:55:49 +00:00
Douglas Gregor 7d5fc7e28b Initial, rudimentary implementation of operator overloading for binary
operators. For example, one can now write "x + y" where x or y is a
class or enumeration type, and Clang will perform overload resolution
for "+" based on the overloaded operators it finds.

The other kinds of overloadable operators in C++ will follow this same
approach. 

Three major issues remain:
  1) We don't find member operators
  2) Since we don't have user-defined conversion operators, we can't
  call any of the built-in overloaded operators in C++ [over.built].
  3) Once we've done the semantic checks, we drop the overloaded
  operator on the floor; it doesn't get into the AST at all.

llvm-svn: 58821
2008-11-06 23:29:22 +00:00
Mon P Wang 5ca2ec65bd Fixed scalarizing an extract subvector and prevent an infinite loop
when simplify a vector. 

llvm-svn: 58820
2008-11-06 22:52:21 +00:00
Bill Wendling d939a7b305 The size limit is for individual arrays. So if any array has more than 8 bytes
in it, then emit stack protectors.

llvm-svn: 58819
2008-11-06 22:18:44 +00:00
Evan Cheng 49d665218c Encode extend instructions; more clean up.
llvm-svn: 58818
2008-11-06 22:15:19 +00:00
Douglas Gregor 11d0c4c098 Parsing, ASTs, and semantic analysis for the declaration of overloaded
operators in C++. Overloaded operators can be called directly via
their operator-function-ids, e.g., "operator+(foo, bar)", but we don't
yet implement the semantics of operator overloading to handle, e.g.,
"foo + bar".

llvm-svn: 58817
2008-11-06 22:13:31 +00:00
Dan Gohman 193e4c025e Fix a use of an invalid iterator when -debug-pass=Details is used.
llvm-svn: 58816
2008-11-06 21:57:17 +00:00
Bill Wendling 8b47c1e0a2 Don't recalculate the stack position of the stack protector.
llvm-svn: 58815
2008-11-06 21:37:09 +00:00
Devang Patel 8af0a362f1 Emit label for llvm.dbg.func.start of the inlined function.
llvm-svn: 58814
2008-11-06 21:28:20 +00:00
Devang Patel ef21de946b Clarify documentation. A module pass MP can require a function paqss FP only if FP does not require any module pass.
llvm-svn: 58813
2008-11-06 19:47:49 +00:00
Evan Cheng aa03cd3336 - Improve naming consistency: Branch -> BrFrm, BranchMisc -> BrMiscFrm.
- Consolidate instruction formats.
- Other clean up.

llvm-svn: 58808
2008-11-06 17:48:05 +00:00
Evan Cheng 972fd1a1e0 Improve JIT debugging outputs format consistency.
llvm-svn: 58807
2008-11-06 17:46:04 +00:00
Douglas Gregor 2ad7ee9145 Reclaim some bits in IdentifierInfo, for later use as overloaded operator names.
llvm-svn: 58806
2008-11-06 16:32:23 +00:00
Nuno Lopes 2817338558 plug leakage of mutex data. pthread_mutex_destroy() doesnt free our malloc'ed memory.
llvm-svn: 58805
2008-11-06 16:21:49 +00:00
Sebastian Redl b426f63302 Sema-check virtual declarations. Complete dynamic_cast checking.
llvm-svn: 58804
2008-11-06 15:59:35 +00:00
Douglas Gregor d7fc872d5c Add the remaining C++0x keywords
llvm-svn: 58802
2008-11-06 15:17:27 +00:00
Duncan Sands f178f8300d Formating/comment changes - no functionality change.
llvm-svn: 58801
2008-11-06 08:51:32 +00:00
Evan Cheng 47b546d75f Remove opcode from instruction TS flags; add MOVCC support; fix addrmode3 encoding bug.
llvm-svn: 58800
2008-11-06 08:47:38 +00:00
Bill Wendling b3f7a39877 - Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}.
- Get rid of "HasStackProtector" in MachineFrameInfo.
- Modify intrinsics to tell which are doing what with memory.

llvm-svn: 58799
2008-11-06 07:23:03 +00:00
Steve Naroff ef625263ef Update VC++ projects.
llvm-svn: 58798
2008-11-06 06:24:59 +00:00
Steve Naroff 7e53df94e3 Update VC++ proj.
llvm-svn: 58797
2008-11-06 06:24:22 +00:00
Mon P Wang 9a8d60a7c0 Widening cleanup
llvm-svn: 58796
2008-11-06 05:31:54 +00:00
Zhongxing Xu d952b247d1 Bring back RegionExtent classes.
llvm-svn: 58795
2008-11-06 04:55:21 +00:00
Evan Cheng 36ae40342f Handle smul<x><y>, smulw<y>, smla<x><y>, smlaw<y>.
llvm-svn: 58793
2008-11-06 03:35:07 +00:00
Bill Wendling 43de293d75 Adjust the stack protector heuristic to care about only arrays or calls to
"alloca".

llvm-svn: 58792
2008-11-06 02:38:58 +00:00
Bill Wendling d970ea3eac Implement the stack protector stack accesses via intrinsics:
- stackprotector_prologue creates a stack object and stores the guard there.

- stackprotector_epilogue reads the stack guard from the stack position created
  by stackprotector_prologue.

- The PrologEpilogInserter was changed to make sure that the stack guard is
  first on the stack frame.

llvm-svn: 58791
2008-11-06 02:29:10 +00:00
Evan Cheng b870fd8874 Fix so_imm encoding bug; add support for MOVi2pieces.
llvm-svn: 58790
2008-11-06 02:25:39 +00:00
Evan Cheng 2686c8fb34 Fix encoding of multiple instructions with 3 src operands; also handle smmul, smmla, and smmls.
llvm-svn: 58789
2008-11-06 01:21:28 +00:00