Ahmed - the 'gold standard' for teaching compilers is known as the 'dragon' book. The first edition was a green dragon, written by Aho and Ullman, the current version is the red dragon and has the additional author Sethi.
Any tutorial wouldn't go into enough detail on all the ways a compiler can be written - and how they recognize the language that they attempting to generate code for.
While the dragon book is definitely a standard and still a great introductory text, I would recommend to look a bit further, especially if you are interested in advanced static analysis, optimization and code generation. For these topics, I would recommend Steven S. Muchnik's "Advanced Compiler Design and Implementation" and Srikant/Shankar's "The Compiler Design Handbook".
For a hands-on introduction, have a look into "The Architecture Of Open Source Applications" by Amy Brown and Greg Wilson, which has a chapter about LLVM. And if you want to build your own compiler, "Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages" by Terence Parr is a good starting point as well.